diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/acpi.h | 1 | ||||
| -rw-r--r-- | include/linux/fault-inject.h | 18 | ||||
| -rw-r--r-- | include/linux/gfp.h | 2 | ||||
| -rw-r--r-- | include/linux/idr.h | 4 | ||||
| -rw-r--r-- | include/linux/memcontrol.h | 8 | ||||
| -rw-r--r-- | include/linux/mfd/aat2870.h | 2 | ||||
| -rw-r--r-- | include/linux/radix-tree.h | 37 | ||||
| -rw-r--r-- | include/linux/shmem_fs.h | 17 | ||||
| -rw-r--r-- | include/linux/swapops.h | 23 | ||||
| -rw-r--r-- | include/linux/thermal.h | 22 |
10 files changed, 72 insertions, 62 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 1deb2a73c2da..2312e850aab8 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
| @@ -238,7 +238,6 @@ extern int acpi_paddr_to_node(u64 start_addr, u64 size); | |||
| 238 | extern int pnpacpi_disabled; | 238 | extern int pnpacpi_disabled; |
| 239 | 239 | ||
| 240 | #define PXM_INVAL (-1) | 240 | #define PXM_INVAL (-1) |
| 241 | #define NID_INVAL (-1) | ||
| 242 | 241 | ||
| 243 | int acpi_check_resource_conflict(const struct resource *res); | 242 | int acpi_check_resource_conflict(const struct resource *res); |
| 244 | 243 | ||
diff --git a/include/linux/fault-inject.h b/include/linux/fault-inject.h index 3ff060ac7810..c6f996f2abb6 100644 --- a/include/linux/fault-inject.h +++ b/include/linux/fault-inject.h | |||
| @@ -25,10 +25,6 @@ struct fault_attr { | |||
| 25 | unsigned long reject_end; | 25 | unsigned long reject_end; |
| 26 | 26 | ||
| 27 | unsigned long count; | 27 | unsigned long count; |
| 28 | |||
| 29 | #ifdef CONFIG_FAULT_INJECTION_DEBUG_FS | ||
| 30 | struct dentry *dir; | ||
| 31 | #endif | ||
| 32 | }; | 28 | }; |
| 33 | 29 | ||
| 34 | #define FAULT_ATTR_INITIALIZER { \ | 30 | #define FAULT_ATTR_INITIALIZER { \ |
| @@ -45,19 +41,15 @@ bool should_fail(struct fault_attr *attr, ssize_t size); | |||
| 45 | 41 | ||
| 46 | #ifdef CONFIG_FAULT_INJECTION_DEBUG_FS | 42 | #ifdef CONFIG_FAULT_INJECTION_DEBUG_FS |
| 47 | 43 | ||
| 48 | int init_fault_attr_dentries(struct fault_attr *attr, const char *name); | 44 | struct dentry *fault_create_debugfs_attr(const char *name, |
| 49 | void cleanup_fault_attr_dentries(struct fault_attr *attr); | 45 | struct dentry *parent, struct fault_attr *attr); |
| 50 | 46 | ||
| 51 | #else /* CONFIG_FAULT_INJECTION_DEBUG_FS */ | 47 | #else /* CONFIG_FAULT_INJECTION_DEBUG_FS */ |
| 52 | 48 | ||
| 53 | static inline int init_fault_attr_dentries(struct fault_attr *attr, | 49 | static inline struct dentry *fault_create_debugfs_attr(const char *name, |
| 54 | const char *name) | 50 | struct dentry *parent, struct fault_attr *attr) |
| 55 | { | ||
| 56 | return -ENODEV; | ||
| 57 | } | ||
| 58 | |||
| 59 | static inline void cleanup_fault_attr_dentries(struct fault_attr *attr) | ||
| 60 | { | 51 | { |
| 52 | return ERR_PTR(-ENODEV); | ||
| 61 | } | 53 | } |
| 62 | 54 | ||
| 63 | #endif /* CONFIG_FAULT_INJECTION_DEBUG_FS */ | 55 | #endif /* CONFIG_FAULT_INJECTION_DEBUG_FS */ |
diff --git a/include/linux/gfp.h b/include/linux/gfp.h index cb4089254f01..3a76faf6a3ee 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h | |||
| @@ -92,7 +92,7 @@ struct vm_area_struct; | |||
| 92 | */ | 92 | */ |
| 93 | #define __GFP_NOTRACK_FALSE_POSITIVE (__GFP_NOTRACK) | 93 | #define __GFP_NOTRACK_FALSE_POSITIVE (__GFP_NOTRACK) |
| 94 | 94 | ||
| 95 | #define __GFP_BITS_SHIFT 23 /* Room for 23 __GFP_FOO bits */ | 95 | #define __GFP_BITS_SHIFT 24 /* Room for N __GFP_FOO bits */ |
| 96 | #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) | 96 | #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) |
| 97 | 97 | ||
| 98 | /* This equals 0, but use constants in case they ever change */ | 98 | /* This equals 0, but use constants in case they ever change */ |
diff --git a/include/linux/idr.h b/include/linux/idr.h index 13a801f3d028..255491cf522e 100644 --- a/include/linux/idr.h +++ b/include/linux/idr.h | |||
| @@ -146,6 +146,10 @@ void ida_remove(struct ida *ida, int id); | |||
| 146 | void ida_destroy(struct ida *ida); | 146 | void ida_destroy(struct ida *ida); |
| 147 | void ida_init(struct ida *ida); | 147 | void ida_init(struct ida *ida); |
| 148 | 148 | ||
| 149 | int ida_simple_get(struct ida *ida, unsigned int start, unsigned int end, | ||
| 150 | gfp_t gfp_mask); | ||
| 151 | void ida_simple_remove(struct ida *ida, unsigned int id); | ||
| 152 | |||
| 149 | void __init idr_init_cache(void); | 153 | void __init idr_init_cache(void); |
| 150 | 154 | ||
| 151 | #endif /* __IDR_H__ */ | 155 | #endif /* __IDR_H__ */ |
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index b96600786913..3b535db00a94 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h | |||
| @@ -86,8 +86,6 @@ extern void mem_cgroup_uncharge_end(void); | |||
| 86 | 86 | ||
| 87 | extern void mem_cgroup_uncharge_page(struct page *page); | 87 | extern void mem_cgroup_uncharge_page(struct page *page); |
| 88 | extern void mem_cgroup_uncharge_cache_page(struct page *page); | 88 | extern void mem_cgroup_uncharge_cache_page(struct page *page); |
| 89 | extern int mem_cgroup_shmem_charge_fallback(struct page *page, | ||
| 90 | struct mm_struct *mm, gfp_t gfp_mask); | ||
| 91 | 89 | ||
| 92 | extern void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask); | 90 | extern void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask); |
| 93 | int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *mem); | 91 | int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *mem); |
| @@ -225,12 +223,6 @@ static inline void mem_cgroup_uncharge_cache_page(struct page *page) | |||
| 225 | { | 223 | { |
| 226 | } | 224 | } |
| 227 | 225 | ||
| 228 | static inline int mem_cgroup_shmem_charge_fallback(struct page *page, | ||
| 229 | struct mm_struct *mm, gfp_t gfp_mask) | ||
| 230 | { | ||
| 231 | return 0; | ||
| 232 | } | ||
| 233 | |||
| 234 | static inline void mem_cgroup_add_lru_list(struct page *page, int lru) | 226 | static inline void mem_cgroup_add_lru_list(struct page *page, int lru) |
| 235 | { | 227 | { |
| 236 | } | 228 | } |
diff --git a/include/linux/mfd/aat2870.h b/include/linux/mfd/aat2870.h index 89212df05622..f7316c29bdec 100644 --- a/include/linux/mfd/aat2870.h +++ b/include/linux/mfd/aat2870.h | |||
| @@ -89,7 +89,7 @@ enum aat2870_id { | |||
| 89 | 89 | ||
| 90 | /* Backlight current magnitude (mA) */ | 90 | /* Backlight current magnitude (mA) */ |
| 91 | enum aat2870_current { | 91 | enum aat2870_current { |
| 92 | AAT2870_CURRENT_0_45, | 92 | AAT2870_CURRENT_0_45 = 1, |
| 93 | AAT2870_CURRENT_0_90, | 93 | AAT2870_CURRENT_0_90, |
| 94 | AAT2870_CURRENT_1_80, | 94 | AAT2870_CURRENT_1_80, |
| 95 | AAT2870_CURRENT_2_70, | 95 | AAT2870_CURRENT_2_70, |
diff --git a/include/linux/radix-tree.h b/include/linux/radix-tree.h index 23241c2fecce..9d4539c52e53 100644 --- a/include/linux/radix-tree.h +++ b/include/linux/radix-tree.h | |||
| @@ -39,7 +39,15 @@ | |||
| 39 | * when it is shrunk, before we rcu free the node. See shrink code for | 39 | * when it is shrunk, before we rcu free the node. See shrink code for |
| 40 | * details. | 40 | * details. |
| 41 | */ | 41 | */ |
| 42 | #define RADIX_TREE_INDIRECT_PTR 1 | 42 | #define RADIX_TREE_INDIRECT_PTR 1 |
| 43 | /* | ||
| 44 | * A common use of the radix tree is to store pointers to struct pages; | ||
| 45 | * but shmem/tmpfs needs also to store swap entries in the same tree: | ||
| 46 | * those are marked as exceptional entries to distinguish them. | ||
| 47 | * EXCEPTIONAL_ENTRY tests the bit, EXCEPTIONAL_SHIFT shifts content past it. | ||
| 48 | */ | ||
| 49 | #define RADIX_TREE_EXCEPTIONAL_ENTRY 2 | ||
| 50 | #define RADIX_TREE_EXCEPTIONAL_SHIFT 2 | ||
| 43 | 51 | ||
| 44 | #define radix_tree_indirect_to_ptr(ptr) \ | 52 | #define radix_tree_indirect_to_ptr(ptr) \ |
| 45 | radix_tree_indirect_to_ptr((void __force *)(ptr)) | 53 | radix_tree_indirect_to_ptr((void __force *)(ptr)) |
| @@ -174,6 +182,28 @@ static inline int radix_tree_deref_retry(void *arg) | |||
| 174 | } | 182 | } |
| 175 | 183 | ||
| 176 | /** | 184 | /** |
| 185 | * radix_tree_exceptional_entry - radix_tree_deref_slot gave exceptional entry? | ||
| 186 | * @arg: value returned by radix_tree_deref_slot | ||
| 187 | * Returns: 0 if well-aligned pointer, non-0 if exceptional entry. | ||
| 188 | */ | ||
| 189 | static inline int radix_tree_exceptional_entry(void *arg) | ||
| 190 | { | ||
| 191 | /* Not unlikely because radix_tree_exception often tested first */ | ||
| 192 | return (unsigned long)arg & RADIX_TREE_EXCEPTIONAL_ENTRY; | ||
| 193 | } | ||
| 194 | |||
| 195 | /** | ||
| 196 | * radix_tree_exception - radix_tree_deref_slot returned either exception? | ||
| 197 | * @arg: value returned by radix_tree_deref_slot | ||
| 198 | * Returns: 0 if well-aligned pointer, non-0 if either kind of exception. | ||
| 199 | */ | ||
| 200 | static inline int radix_tree_exception(void *arg) | ||
| 201 | { | ||
| 202 | return unlikely((unsigned long)arg & | ||
| 203 | (RADIX_TREE_INDIRECT_PTR | RADIX_TREE_EXCEPTIONAL_ENTRY)); | ||
| 204 | } | ||
| 205 | |||
| 206 | /** | ||
| 177 | * radix_tree_replace_slot - replace item in a slot | 207 | * radix_tree_replace_slot - replace item in a slot |
| 178 | * @pslot: pointer to slot, returned by radix_tree_lookup_slot | 208 | * @pslot: pointer to slot, returned by radix_tree_lookup_slot |
| 179 | * @item: new item to store in the slot. | 209 | * @item: new item to store in the slot. |
| @@ -194,8 +224,8 @@ void *radix_tree_delete(struct radix_tree_root *, unsigned long); | |||
| 194 | unsigned int | 224 | unsigned int |
| 195 | radix_tree_gang_lookup(struct radix_tree_root *root, void **results, | 225 | radix_tree_gang_lookup(struct radix_tree_root *root, void **results, |
| 196 | unsigned long first_index, unsigned int max_items); | 226 | unsigned long first_index, unsigned int max_items); |
| 197 | unsigned int | 227 | unsigned int radix_tree_gang_lookup_slot(struct radix_tree_root *root, |
| 198 | radix_tree_gang_lookup_slot(struct radix_tree_root *root, void ***results, | 228 | void ***results, unsigned long *indices, |
| 199 | unsigned long first_index, unsigned int max_items); | 229 | unsigned long first_index, unsigned int max_items); |
| 200 | unsigned long radix_tree_next_hole(struct radix_tree_root *root, | 230 | unsigned long radix_tree_next_hole(struct radix_tree_root *root, |
| 201 | unsigned long index, unsigned long max_scan); | 231 | unsigned long index, unsigned long max_scan); |
| @@ -222,6 +252,7 @@ unsigned long radix_tree_range_tag_if_tagged(struct radix_tree_root *root, | |||
| 222 | unsigned long nr_to_tag, | 252 | unsigned long nr_to_tag, |
| 223 | unsigned int fromtag, unsigned int totag); | 253 | unsigned int fromtag, unsigned int totag); |
| 224 | int radix_tree_tagged(struct radix_tree_root *root, unsigned int tag); | 254 | int radix_tree_tagged(struct radix_tree_root *root, unsigned int tag); |
| 255 | unsigned long radix_tree_locate_item(struct radix_tree_root *root, void *item); | ||
| 225 | 256 | ||
| 226 | static inline void radix_tree_preload_end(void) | 257 | static inline void radix_tree_preload_end(void) |
| 227 | { | 258 | { |
diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h index aa08fa8fd79b..9291ac3cc627 100644 --- a/include/linux/shmem_fs.h +++ b/include/linux/shmem_fs.h | |||
| @@ -8,22 +8,15 @@ | |||
| 8 | 8 | ||
| 9 | /* inode in-kernel data */ | 9 | /* inode in-kernel data */ |
| 10 | 10 | ||
| 11 | #define SHMEM_NR_DIRECT 16 | ||
| 12 | |||
| 13 | #define SHMEM_SYMLINK_INLINE_LEN (SHMEM_NR_DIRECT * sizeof(swp_entry_t)) | ||
| 14 | |||
| 15 | struct shmem_inode_info { | 11 | struct shmem_inode_info { |
| 16 | spinlock_t lock; | 12 | spinlock_t lock; |
| 17 | unsigned long flags; | 13 | unsigned long flags; |
| 18 | unsigned long alloced; /* data pages alloced to file */ | 14 | unsigned long alloced; /* data pages alloced to file */ |
| 19 | unsigned long swapped; /* subtotal assigned to swap */ | ||
| 20 | unsigned long next_index; /* highest alloced index + 1 */ | ||
| 21 | struct shared_policy policy; /* NUMA memory alloc policy */ | ||
| 22 | struct page *i_indirect; /* top indirect blocks page */ | ||
| 23 | union { | 15 | union { |
| 24 | swp_entry_t i_direct[SHMEM_NR_DIRECT]; /* first blocks */ | 16 | unsigned long swapped; /* subtotal assigned to swap */ |
| 25 | char inline_symlink[SHMEM_SYMLINK_INLINE_LEN]; | 17 | char *symlink; /* unswappable short symlink */ |
| 26 | }; | 18 | }; |
| 19 | struct shared_policy policy; /* NUMA memory alloc policy */ | ||
| 27 | struct list_head swaplist; /* chain of maybes on swap */ | 20 | struct list_head swaplist; /* chain of maybes on swap */ |
| 28 | struct list_head xattr_list; /* list of shmem_xattr */ | 21 | struct list_head xattr_list; /* list of shmem_xattr */ |
| 29 | struct inode vfs_inode; | 22 | struct inode vfs_inode; |
| @@ -49,7 +42,7 @@ static inline struct shmem_inode_info *SHMEM_I(struct inode *inode) | |||
| 49 | /* | 42 | /* |
| 50 | * Functions in mm/shmem.c called directly from elsewhere: | 43 | * Functions in mm/shmem.c called directly from elsewhere: |
| 51 | */ | 44 | */ |
| 52 | extern int init_tmpfs(void); | 45 | extern int shmem_init(void); |
| 53 | extern int shmem_fill_super(struct super_block *sb, void *data, int silent); | 46 | extern int shmem_fill_super(struct super_block *sb, void *data, int silent); |
| 54 | extern struct file *shmem_file_setup(const char *name, | 47 | extern struct file *shmem_file_setup(const char *name, |
| 55 | loff_t size, unsigned long flags); | 48 | loff_t size, unsigned long flags); |
| @@ -59,8 +52,6 @@ extern struct page *shmem_read_mapping_page_gfp(struct address_space *mapping, | |||
| 59 | pgoff_t index, gfp_t gfp_mask); | 52 | pgoff_t index, gfp_t gfp_mask); |
| 60 | extern void shmem_truncate_range(struct inode *inode, loff_t start, loff_t end); | 53 | extern void shmem_truncate_range(struct inode *inode, loff_t start, loff_t end); |
| 61 | extern int shmem_unuse(swp_entry_t entry, struct page *page); | 54 | extern int shmem_unuse(swp_entry_t entry, struct page *page); |
| 62 | extern void mem_cgroup_get_shmem_target(struct inode *inode, pgoff_t pgoff, | ||
| 63 | struct page **pagep, swp_entry_t *ent); | ||
| 64 | 55 | ||
| 65 | static inline struct page *shmem_read_mapping_page( | 56 | static inline struct page *shmem_read_mapping_page( |
| 66 | struct address_space *mapping, pgoff_t index) | 57 | struct address_space *mapping, pgoff_t index) |
diff --git a/include/linux/swapops.h b/include/linux/swapops.h index cd42e30b7c6e..2189d3ffc85d 100644 --- a/include/linux/swapops.h +++ b/include/linux/swapops.h | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | #ifndef _LINUX_SWAPOPS_H | ||
| 2 | #define _LINUX_SWAPOPS_H | ||
| 3 | |||
| 4 | #include <linux/radix-tree.h> | ||
| 5 | |||
| 1 | /* | 6 | /* |
| 2 | * swapcache pages are stored in the swapper_space radix tree. We want to | 7 | * swapcache pages are stored in the swapper_space radix tree. We want to |
| 3 | * get good packing density in that tree, so the index should be dense in | 8 | * get good packing density in that tree, so the index should be dense in |
| @@ -76,6 +81,22 @@ static inline pte_t swp_entry_to_pte(swp_entry_t entry) | |||
| 76 | return __swp_entry_to_pte(arch_entry); | 81 | return __swp_entry_to_pte(arch_entry); |
| 77 | } | 82 | } |
| 78 | 83 | ||
| 84 | static inline swp_entry_t radix_to_swp_entry(void *arg) | ||
| 85 | { | ||
| 86 | swp_entry_t entry; | ||
| 87 | |||
| 88 | entry.val = (unsigned long)arg >> RADIX_TREE_EXCEPTIONAL_SHIFT; | ||
| 89 | return entry; | ||
| 90 | } | ||
| 91 | |||
| 92 | static inline void *swp_to_radix_entry(swp_entry_t entry) | ||
| 93 | { | ||
| 94 | unsigned long value; | ||
| 95 | |||
| 96 | value = entry.val << RADIX_TREE_EXCEPTIONAL_SHIFT; | ||
| 97 | return (void *)(value | RADIX_TREE_EXCEPTIONAL_ENTRY); | ||
| 98 | } | ||
| 99 | |||
| 79 | #ifdef CONFIG_MIGRATION | 100 | #ifdef CONFIG_MIGRATION |
| 80 | static inline swp_entry_t make_migration_entry(struct page *page, int write) | 101 | static inline swp_entry_t make_migration_entry(struct page *page, int write) |
| 81 | { | 102 | { |
| @@ -169,3 +190,5 @@ static inline int non_swap_entry(swp_entry_t entry) | |||
| 169 | return 0; | 190 | return 0; |
| 170 | } | 191 | } |
| 171 | #endif | 192 | #endif |
| 193 | |||
| 194 | #endif /* _LINUX_SWAPOPS_H */ | ||
diff --git a/include/linux/thermal.h b/include/linux/thermal.h index d3ec89fb4122..47b4a27e6e97 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h | |||
| @@ -85,22 +85,6 @@ struct thermal_cooling_device { | |||
| 85 | ((long)t-2732+5)/10 : ((long)t-2732-5)/10) | 85 | ((long)t-2732+5)/10 : ((long)t-2732-5)/10) |
| 86 | #define CELSIUS_TO_KELVIN(t) ((t)*10+2732) | 86 | #define CELSIUS_TO_KELVIN(t) ((t)*10+2732) |
| 87 | 87 | ||
| 88 | #if defined(CONFIG_THERMAL_HWMON) | ||
| 89 | /* thermal zone devices with the same type share one hwmon device */ | ||
| 90 | struct thermal_hwmon_device { | ||
| 91 | char type[THERMAL_NAME_LENGTH]; | ||
| 92 | struct device *device; | ||
| 93 | int count; | ||
| 94 | struct list_head tz_list; | ||
| 95 | struct list_head node; | ||
| 96 | }; | ||
| 97 | |||
| 98 | struct thermal_hwmon_attr { | ||
| 99 | struct device_attribute attr; | ||
| 100 | char name[16]; | ||
| 101 | }; | ||
| 102 | #endif | ||
| 103 | |||
| 104 | struct thermal_zone_device { | 88 | struct thermal_zone_device { |
| 105 | int id; | 89 | int id; |
| 106 | char type[THERMAL_NAME_LENGTH]; | 90 | char type[THERMAL_NAME_LENGTH]; |
| @@ -120,12 +104,6 @@ struct thermal_zone_device { | |||
| 120 | struct mutex lock; /* protect cooling devices list */ | 104 | struct mutex lock; /* protect cooling devices list */ |
| 121 | struct list_head node; | 105 | struct list_head node; |
| 122 | struct delayed_work poll_queue; | 106 | struct delayed_work poll_queue; |
| 123 | #if defined(CONFIG_THERMAL_HWMON) | ||
| 124 | struct list_head hwmon_node; | ||
| 125 | struct thermal_hwmon_device *hwmon; | ||
| 126 | struct thermal_hwmon_attr temp_input; /* hwmon sys attr */ | ||
| 127 | struct thermal_hwmon_attr temp_crit; /* hwmon sys attr */ | ||
| 128 | #endif | ||
| 129 | }; | 107 | }; |
| 130 | /* Adding event notification support elements */ | 108 | /* Adding event notification support elements */ |
| 131 | #define THERMAL_GENL_FAMILY_NAME "thermal_event" | 109 | #define THERMAL_GENL_FAMILY_NAME "thermal_event" |
