diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/acpi.h | 6 | ||||
| -rw-r--r-- | include/linux/decompress/unlzo.h | 10 | ||||
| -rw-r--r-- | include/linux/firewire-cdev.h | 3 | ||||
| -rw-r--r-- | include/linux/firewire.h | 4 | ||||
| -rw-r--r-- | include/linux/fs.h | 2 | ||||
| -rw-r--r-- | include/linux/highmem.h | 2 | ||||
| -rw-r--r-- | include/linux/i2c/adp5588.h | 12 | ||||
| -rw-r--r-- | include/linux/kernel.h | 4 | ||||
| -rw-r--r-- | include/linux/kfifo.h | 42 | ||||
| -rw-r--r-- | include/linux/kgdb.h | 7 | ||||
| -rw-r--r-- | include/linux/kmemcheck.h | 110 | ||||
| -rw-r--r-- | include/linux/libata.h | 3 | ||||
| -rw-r--r-- | include/linux/list_sort.h | 11 | ||||
| -rw-r--r-- | include/linux/mfd/tmio.h | 39 | ||||
| -rw-r--r-- | include/linux/mfd/wm8350/pmic.h | 28 | ||||
| -rw-r--r-- | include/linux/mm.h | 1 | ||||
| -rw-r--r-- | include/linux/mm_types.h | 6 | ||||
| -rw-r--r-- | include/linux/pci.h | 1 | ||||
| -rw-r--r-- | include/linux/phy.h | 1 | ||||
| -rw-r--r-- | include/linux/poison.h | 16 | ||||
| -rw-r--r-- | include/linux/reiserfs_fs.h | 26 | ||||
| -rw-r--r-- | include/linux/resource.h | 8 | ||||
| -rw-r--r-- | include/linux/sched.h | 29 | ||||
| -rw-r--r-- | include/linux/serio.h | 19 | ||||
| -rw-r--r-- | include/linux/string.h | 5 | ||||
| -rw-r--r-- | include/linux/syscalls.h | 2 | ||||
| -rw-r--r-- | include/linux/tty.h | 4 | ||||
| -rw-r--r-- | include/linux/uaccess.h | 4 |
28 files changed, 279 insertions, 126 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 36924255c0d5..b926afe8c03e 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
| @@ -80,7 +80,7 @@ char * __acpi_map_table (unsigned long phys_addr, unsigned long size); | |||
| 80 | void __acpi_unmap_table(char *map, unsigned long size); | 80 | void __acpi_unmap_table(char *map, unsigned long size); |
| 81 | int early_acpi_boot_init(void); | 81 | int early_acpi_boot_init(void); |
| 82 | int acpi_boot_init (void); | 82 | int acpi_boot_init (void); |
| 83 | int acpi_boot_table_init (void); | 83 | void acpi_boot_table_init (void); |
| 84 | int acpi_mps_check (void); | 84 | int acpi_mps_check (void); |
| 85 | int acpi_numa_init (void); | 85 | int acpi_numa_init (void); |
| 86 | 86 | ||
| @@ -321,9 +321,9 @@ static inline int acpi_boot_init(void) | |||
| 321 | return 0; | 321 | return 0; |
| 322 | } | 322 | } |
| 323 | 323 | ||
| 324 | static inline int acpi_boot_table_init(void) | 324 | static inline void acpi_boot_table_init(void) |
| 325 | { | 325 | { |
| 326 | return 0; | 326 | return; |
| 327 | } | 327 | } |
| 328 | 328 | ||
| 329 | static inline int acpi_mps_check(void) | 329 | static inline int acpi_mps_check(void) |
diff --git a/include/linux/decompress/unlzo.h b/include/linux/decompress/unlzo.h new file mode 100644 index 000000000000..987229752519 --- /dev/null +++ b/include/linux/decompress/unlzo.h | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | #ifndef DECOMPRESS_UNLZO_H | ||
| 2 | #define DECOMPRESS_UNLZO_H | ||
| 3 | |||
| 4 | int unlzo(unsigned char *inbuf, int len, | ||
| 5 | int(*fill)(void*, unsigned int), | ||
| 6 | int(*flush)(void*, unsigned int), | ||
| 7 | unsigned char *output, | ||
| 8 | int *pos, | ||
| 9 | void(*error)(char *x)); | ||
| 10 | #endif | ||
diff --git a/include/linux/firewire-cdev.h b/include/linux/firewire-cdev.h index c6b3ca3af6df..1f716d9f714b 100644 --- a/include/linux/firewire-cdev.h +++ b/include/linux/firewire-cdev.h | |||
| @@ -340,6 +340,9 @@ struct fw_cdev_send_response { | |||
| 340 | * The @closure field is passed back to userspace in the response event. | 340 | * The @closure field is passed back to userspace in the response event. |
| 341 | * The @handle field is an out parameter, returning a handle to the allocated | 341 | * The @handle field is an out parameter, returning a handle to the allocated |
| 342 | * range to be used for later deallocation of the range. | 342 | * range to be used for later deallocation of the range. |
| 343 | * | ||
| 344 | * The address range is allocated on all local nodes. The address allocation | ||
| 345 | * is exclusive except for the FCP command and response registers. | ||
| 343 | */ | 346 | */ |
| 344 | struct fw_cdev_allocate { | 347 | struct fw_cdev_allocate { |
| 345 | __u64 offset; | 348 | __u64 offset; |
diff --git a/include/linux/firewire.h b/include/linux/firewire.h index 9416a461b696..a0e67150a729 100644 --- a/include/linux/firewire.h +++ b/include/linux/firewire.h | |||
| @@ -248,8 +248,8 @@ typedef void (*fw_transaction_callback_t)(struct fw_card *card, int rcode, | |||
| 248 | void *data, size_t length, | 248 | void *data, size_t length, |
| 249 | void *callback_data); | 249 | void *callback_data); |
| 250 | /* | 250 | /* |
| 251 | * Important note: The callback must guarantee that either fw_send_response() | 251 | * Important note: Except for the FCP registers, the callback must guarantee |
| 252 | * or kfree() is called on the @request. | 252 | * that either fw_send_response() or kfree() is called on the @request. |
| 253 | */ | 253 | */ |
| 254 | typedef void (*fw_address_callback_t)(struct fw_card *card, | 254 | typedef void (*fw_address_callback_t)(struct fw_card *card, |
| 255 | struct fw_request *request, | 255 | struct fw_request *request, |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 9147ca88f253..b1bcb275b596 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -2463,7 +2463,7 @@ int proc_nr_files(struct ctl_table *table, int write, | |||
| 2463 | 2463 | ||
| 2464 | int __init get_filesystem_list(char *buf); | 2464 | int __init get_filesystem_list(char *buf); |
| 2465 | 2465 | ||
| 2466 | #define ACC_MODE(x) ("\000\004\002\006"[(x)&O_ACCMODE]) | 2466 | #define ACC_MODE(x) ("\004\002\006\006"[(x)&O_ACCMODE]) |
| 2467 | #define OPEN_FMODE(flag) ((__force fmode_t)((flag + 1) & O_ACCMODE)) | 2467 | #define OPEN_FMODE(flag) ((__force fmode_t)((flag + 1) & O_ACCMODE)) |
| 2468 | 2468 | ||
| 2469 | #endif /* __KERNEL__ */ | 2469 | #endif /* __KERNEL__ */ |
diff --git a/include/linux/highmem.h b/include/linux/highmem.h index 211ff4497269..ab2cc20e21a5 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h | |||
| @@ -46,7 +46,7 @@ void kmap_flush_unused(void); | |||
| 46 | 46 | ||
| 47 | static inline unsigned int nr_free_highpages(void) { return 0; } | 47 | static inline unsigned int nr_free_highpages(void) { return 0; } |
| 48 | 48 | ||
| 49 | #define totalhigh_pages 0 | 49 | #define totalhigh_pages 0UL |
| 50 | 50 | ||
| 51 | #ifndef ARCH_HAS_KMAP | 51 | #ifndef ARCH_HAS_KMAP |
| 52 | static inline void *kmap(struct page *page) | 52 | static inline void *kmap(struct page *page) |
diff --git a/include/linux/i2c/adp5588.h b/include/linux/i2c/adp5588.h index fc5db826b48e..02c9af374741 100644 --- a/include/linux/i2c/adp5588.h +++ b/include/linux/i2c/adp5588.h | |||
| @@ -89,4 +89,16 @@ struct adp5588_kpad_platform_data { | |||
| 89 | unsigned short unlock_key2; /* Unlock Key 2 */ | 89 | unsigned short unlock_key2; /* Unlock Key 2 */ |
| 90 | }; | 90 | }; |
| 91 | 91 | ||
| 92 | struct adp5588_gpio_platform_data { | ||
| 93 | unsigned gpio_start; /* GPIO Chip base # */ | ||
| 94 | unsigned pullup_dis_mask; /* Pull-Up Disable Mask */ | ||
| 95 | int (*setup)(struct i2c_client *client, | ||
| 96 | int gpio, unsigned ngpio, | ||
| 97 | void *context); | ||
| 98 | int (*teardown)(struct i2c_client *client, | ||
| 99 | int gpio, unsigned ngpio, | ||
| 100 | void *context); | ||
| 101 | void *context; | ||
| 102 | }; | ||
| 103 | |||
| 92 | #endif | 104 | #endif |
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 3fc9f5aab5f8..328bca609b9b 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
| @@ -734,6 +734,10 @@ struct sysinfo { | |||
| 734 | /* Force a compilation error if condition is constant and true */ | 734 | /* Force a compilation error if condition is constant and true */ |
| 735 | #define MAYBE_BUILD_BUG_ON(cond) ((void)sizeof(char[1 - 2 * !!(cond)])) | 735 | #define MAYBE_BUILD_BUG_ON(cond) ((void)sizeof(char[1 - 2 * !!(cond)])) |
| 736 | 736 | ||
| 737 | /* Force a compilation error if a constant expression is not a power of 2 */ | ||
| 738 | #define BUILD_BUG_ON_NOT_POWER_OF_2(n) \ | ||
| 739 | BUILD_BUG_ON((n) == 0 || (((n) & ((n) - 1)) != 0)) | ||
| 740 | |||
| 737 | /* Force a compilation error if condition is true, but also produce a | 741 | /* Force a compilation error if condition is true, but also produce a |
| 738 | result (of value 0 and type size_t), so the expression can be used | 742 | result (of value 0 and type size_t), so the expression can be used |
| 739 | e.g. in a structure initializer (or where-ever else comma expressions | 743 | e.g. in a structure initializer (or where-ever else comma expressions |
diff --git a/include/linux/kfifo.h b/include/linux/kfifo.h index 7c6b32a1421c..6f6c5f300af6 100644 --- a/include/linux/kfifo.h +++ b/include/linux/kfifo.h | |||
| @@ -67,7 +67,7 @@ struct kfifo { | |||
| 67 | /** | 67 | /** |
| 68 | * DECLARE_KFIFO - macro to declare a kfifo and the associated buffer | 68 | * DECLARE_KFIFO - macro to declare a kfifo and the associated buffer |
| 69 | * @name: name of the declared kfifo datatype | 69 | * @name: name of the declared kfifo datatype |
| 70 | * @size: size of the fifo buffer | 70 | * @size: size of the fifo buffer. Must be a power of two. |
| 71 | * | 71 | * |
| 72 | * Note1: the macro can be used inside struct or union declaration | 72 | * Note1: the macro can be used inside struct or union declaration |
| 73 | * Note2: the macro creates two objects: | 73 | * Note2: the macro creates two objects: |
| @@ -91,7 +91,7 @@ union { \ | |||
| 91 | /** | 91 | /** |
| 92 | * DEFINE_KFIFO - macro to define and initialize a kfifo | 92 | * DEFINE_KFIFO - macro to define and initialize a kfifo |
| 93 | * @name: name of the declared kfifo datatype | 93 | * @name: name of the declared kfifo datatype |
| 94 | * @size: size of the fifo buffer | 94 | * @size: size of the fifo buffer. Must be a power of two. |
| 95 | * | 95 | * |
| 96 | * Note1: the macro can be used for global and local kfifo data type variables | 96 | * Note1: the macro can be used for global and local kfifo data type variables |
| 97 | * Note2: the macro creates two objects: | 97 | * Note2: the macro creates two objects: |
| @@ -104,15 +104,28 @@ union { \ | |||
| 104 | 104 | ||
| 105 | #undef __kfifo_initializer | 105 | #undef __kfifo_initializer |
| 106 | 106 | ||
| 107 | extern void kfifo_init(struct kfifo *fifo, unsigned char *buffer, | 107 | extern void kfifo_init(struct kfifo *fifo, void *buffer, |
| 108 | unsigned int size); | 108 | unsigned int size); |
| 109 | extern __must_check int kfifo_alloc(struct kfifo *fifo, unsigned int size, | 109 | extern __must_check int kfifo_alloc(struct kfifo *fifo, unsigned int size, |
| 110 | gfp_t gfp_mask); | 110 | gfp_t gfp_mask); |
| 111 | extern void kfifo_free(struct kfifo *fifo); | 111 | extern void kfifo_free(struct kfifo *fifo); |
| 112 | extern unsigned int kfifo_in(struct kfifo *fifo, | 112 | extern unsigned int kfifo_in(struct kfifo *fifo, |
| 113 | const unsigned char *from, unsigned int len); | 113 | const void *from, unsigned int len); |
| 114 | extern __must_check unsigned int kfifo_out(struct kfifo *fifo, | 114 | extern __must_check unsigned int kfifo_out(struct kfifo *fifo, |
| 115 | unsigned char *to, unsigned int len); | 115 | void *to, unsigned int len); |
| 116 | extern __must_check unsigned int kfifo_out_peek(struct kfifo *fifo, | ||
| 117 | void *to, unsigned int len, unsigned offset); | ||
| 118 | |||
| 119 | /** | ||
| 120 | * kfifo_initialized - Check if kfifo is initialized. | ||
| 121 | * @fifo: fifo to check | ||
| 122 | * Return %true if FIFO is initialized, otherwise %false. | ||
| 123 | * Assumes the fifo was 0 before. | ||
| 124 | */ | ||
| 125 | static inline bool kfifo_initialized(struct kfifo *fifo) | ||
| 126 | { | ||
| 127 | return fifo->buffer != 0; | ||
| 128 | } | ||
| 116 | 129 | ||
| 117 | /** | 130 | /** |
| 118 | * kfifo_reset - removes the entire FIFO contents | 131 | * kfifo_reset - removes the entire FIFO contents |
| @@ -194,7 +207,7 @@ static inline __must_check unsigned int kfifo_avail(struct kfifo *fifo) | |||
| 194 | * bytes copied. | 207 | * bytes copied. |
| 195 | */ | 208 | */ |
| 196 | static inline unsigned int kfifo_in_locked(struct kfifo *fifo, | 209 | static inline unsigned int kfifo_in_locked(struct kfifo *fifo, |
| 197 | const unsigned char *from, unsigned int n, spinlock_t *lock) | 210 | const void *from, unsigned int n, spinlock_t *lock) |
| 198 | { | 211 | { |
| 199 | unsigned long flags; | 212 | unsigned long flags; |
| 200 | unsigned int ret; | 213 | unsigned int ret; |
| @@ -219,7 +232,7 @@ static inline unsigned int kfifo_in_locked(struct kfifo *fifo, | |||
| 219 | * @to buffer and returns the number of copied bytes. | 232 | * @to buffer and returns the number of copied bytes. |
| 220 | */ | 233 | */ |
| 221 | static inline __must_check unsigned int kfifo_out_locked(struct kfifo *fifo, | 234 | static inline __must_check unsigned int kfifo_out_locked(struct kfifo *fifo, |
| 222 | unsigned char *to, unsigned int n, spinlock_t *lock) | 235 | void *to, unsigned int n, spinlock_t *lock) |
| 223 | { | 236 | { |
| 224 | unsigned long flags; | 237 | unsigned long flags; |
| 225 | unsigned int ret; | 238 | unsigned int ret; |
| @@ -228,13 +241,6 @@ static inline __must_check unsigned int kfifo_out_locked(struct kfifo *fifo, | |||
| 228 | 241 | ||
| 229 | ret = kfifo_out(fifo, to, n); | 242 | ret = kfifo_out(fifo, to, n); |
| 230 | 243 | ||
| 231 | /* | ||
| 232 | * optimization: if the FIFO is empty, set the indices to 0 | ||
| 233 | * so we don't wrap the next time | ||
| 234 | */ | ||
| 235 | if (kfifo_is_empty(fifo)) | ||
| 236 | kfifo_reset(fifo); | ||
| 237 | |||
| 238 | spin_unlock_irqrestore(lock, flags); | 244 | spin_unlock_irqrestore(lock, flags); |
| 239 | 245 | ||
| 240 | return ret; | 246 | return ret; |
| @@ -242,11 +248,11 @@ static inline __must_check unsigned int kfifo_out_locked(struct kfifo *fifo, | |||
| 242 | 248 | ||
| 243 | extern void kfifo_skip(struct kfifo *fifo, unsigned int len); | 249 | extern void kfifo_skip(struct kfifo *fifo, unsigned int len); |
| 244 | 250 | ||
| 245 | extern __must_check unsigned int kfifo_from_user(struct kfifo *fifo, | 251 | extern __must_check int kfifo_from_user(struct kfifo *fifo, |
| 246 | const void __user *from, unsigned int n); | 252 | const void __user *from, unsigned int n, unsigned *lenout); |
| 247 | 253 | ||
| 248 | extern __must_check unsigned int kfifo_to_user(struct kfifo *fifo, | 254 | extern __must_check int kfifo_to_user(struct kfifo *fifo, |
| 249 | void __user *to, unsigned int n); | 255 | void __user *to, unsigned int n, unsigned *lenout); |
| 250 | 256 | ||
| 251 | /* | 257 | /* |
| 252 | * __kfifo_add_out internal helper function for updating the out offset | 258 | * __kfifo_add_out internal helper function for updating the out offset |
diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h index 6adcc297e354..19ec41a183f5 100644 --- a/include/linux/kgdb.h +++ b/include/linux/kgdb.h | |||
| @@ -29,8 +29,7 @@ struct pt_regs; | |||
| 29 | * | 29 | * |
| 30 | * On some architectures it is required to skip a breakpoint | 30 | * On some architectures it is required to skip a breakpoint |
| 31 | * exception when it occurs after a breakpoint has been removed. | 31 | * exception when it occurs after a breakpoint has been removed. |
| 32 | * This can be implemented in the architecture specific portion of | 32 | * This can be implemented in the architecture specific portion of kgdb. |
| 33 | * for kgdb. | ||
| 34 | */ | 33 | */ |
| 35 | extern int kgdb_skipexception(int exception, struct pt_regs *regs); | 34 | extern int kgdb_skipexception(int exception, struct pt_regs *regs); |
| 36 | 35 | ||
| @@ -65,7 +64,7 @@ struct uart_port; | |||
| 65 | /** | 64 | /** |
| 66 | * kgdb_breakpoint - compiled in breakpoint | 65 | * kgdb_breakpoint - compiled in breakpoint |
| 67 | * | 66 | * |
| 68 | * This will be impelmented a static inline per architecture. This | 67 | * This will be implemented as a static inline per architecture. This |
| 69 | * function is called by the kgdb core to execute an architecture | 68 | * function is called by the kgdb core to execute an architecture |
| 70 | * specific trap to cause kgdb to enter the exception processing. | 69 | * specific trap to cause kgdb to enter the exception processing. |
| 71 | * | 70 | * |
| @@ -190,7 +189,7 @@ kgdb_arch_handle_exception(int vector, int signo, int err_code, | |||
| 190 | * @flags: Current IRQ state | 189 | * @flags: Current IRQ state |
| 191 | * | 190 | * |
| 192 | * On SMP systems, we need to get the attention of the other CPUs | 191 | * On SMP systems, we need to get the attention of the other CPUs |
| 193 | * and get them be in a known state. This should do what is needed | 192 | * and get them into a known state. This should do what is needed |
| 194 | * to get the other CPUs to call kgdb_wait(). Note that on some arches, | 193 | * to get the other CPUs to call kgdb_wait(). Note that on some arches, |
| 195 | * the NMI approach is not used for rounding up all the CPUs. For example, | 194 | * the NMI approach is not used for rounding up all the CPUs. For example, |
| 196 | * in case of MIPS, smp_call_function() is used to roundup CPUs. In | 195 | * in case of MIPS, smp_call_function() is used to roundup CPUs. In |
diff --git a/include/linux/kmemcheck.h b/include/linux/kmemcheck.h index e880d4cf9e22..08d7dc4ddf40 100644 --- a/include/linux/kmemcheck.h +++ b/include/linux/kmemcheck.h | |||
| @@ -36,6 +36,56 @@ int kmemcheck_hide_addr(unsigned long address); | |||
| 36 | 36 | ||
| 37 | bool kmemcheck_is_obj_initialized(unsigned long addr, size_t size); | 37 | bool kmemcheck_is_obj_initialized(unsigned long addr, size_t size); |
| 38 | 38 | ||
| 39 | /* | ||
| 40 | * Bitfield annotations | ||
| 41 | * | ||
| 42 | * How to use: If you have a struct using bitfields, for example | ||
| 43 | * | ||
| 44 | * struct a { | ||
| 45 | * int x:8, y:8; | ||
| 46 | * }; | ||
| 47 | * | ||
| 48 | * then this should be rewritten as | ||
| 49 | * | ||
| 50 | * struct a { | ||
| 51 | * kmemcheck_bitfield_begin(flags); | ||
| 52 | * int x:8, y:8; | ||
| 53 | * kmemcheck_bitfield_end(flags); | ||
| 54 | * }; | ||
| 55 | * | ||
| 56 | * Now the "flags_begin" and "flags_end" members may be used to refer to the | ||
| 57 | * beginning and end, respectively, of the bitfield (and things like | ||
| 58 | * &x.flags_begin is allowed). As soon as the struct is allocated, the bit- | ||
| 59 | * fields should be annotated: | ||
| 60 | * | ||
| 61 | * struct a *a = kmalloc(sizeof(struct a), GFP_KERNEL); | ||
| 62 | * kmemcheck_annotate_bitfield(a, flags); | ||
| 63 | */ | ||
| 64 | #define kmemcheck_bitfield_begin(name) \ | ||
| 65 | int name##_begin[0]; | ||
| 66 | |||
| 67 | #define kmemcheck_bitfield_end(name) \ | ||
| 68 | int name##_end[0]; | ||
| 69 | |||
| 70 | #define kmemcheck_annotate_bitfield(ptr, name) \ | ||
| 71 | do { \ | ||
| 72 | int _n; \ | ||
| 73 | \ | ||
| 74 | if (!ptr) \ | ||
| 75 | break; \ | ||
| 76 | \ | ||
| 77 | _n = (long) &((ptr)->name##_end) \ | ||
| 78 | - (long) &((ptr)->name##_begin); \ | ||
| 79 | MAYBE_BUILD_BUG_ON(_n < 0); \ | ||
| 80 | \ | ||
| 81 | kmemcheck_mark_initialized(&((ptr)->name##_begin), _n); \ | ||
| 82 | } while (0) | ||
| 83 | |||
| 84 | #define kmemcheck_annotate_variable(var) \ | ||
| 85 | do { \ | ||
| 86 | kmemcheck_mark_initialized(&(var), sizeof(var)); \ | ||
| 87 | } while (0) \ | ||
| 88 | |||
| 39 | #else | 89 | #else |
| 40 | #define kmemcheck_enabled 0 | 90 | #define kmemcheck_enabled 0 |
| 41 | 91 | ||
| @@ -106,60 +156,16 @@ static inline bool kmemcheck_is_obj_initialized(unsigned long addr, size_t size) | |||
| 106 | return true; | 156 | return true; |
| 107 | } | 157 | } |
| 108 | 158 | ||
| 109 | #endif /* CONFIG_KMEMCHECK */ | 159 | #define kmemcheck_bitfield_begin(name) |
| 110 | 160 | #define kmemcheck_bitfield_end(name) | |
| 111 | /* | 161 | #define kmemcheck_annotate_bitfield(ptr, name) \ |
| 112 | * Bitfield annotations | 162 | do { \ |
| 113 | * | 163 | } while (0) |
| 114 | * How to use: If you have a struct using bitfields, for example | ||
| 115 | * | ||
| 116 | * struct a { | ||
| 117 | * int x:8, y:8; | ||
| 118 | * }; | ||
| 119 | * | ||
| 120 | * then this should be rewritten as | ||
| 121 | * | ||
| 122 | * struct a { | ||
| 123 | * kmemcheck_bitfield_begin(flags); | ||
| 124 | * int x:8, y:8; | ||
| 125 | * kmemcheck_bitfield_end(flags); | ||
| 126 | * }; | ||
| 127 | * | ||
| 128 | * Now the "flags_begin" and "flags_end" members may be used to refer to the | ||
| 129 | * beginning and end, respectively, of the bitfield (and things like | ||
| 130 | * &x.flags_begin is allowed). As soon as the struct is allocated, the bit- | ||
| 131 | * fields should be annotated: | ||
| 132 | * | ||
| 133 | * struct a *a = kmalloc(sizeof(struct a), GFP_KERNEL); | ||
| 134 | * kmemcheck_annotate_bitfield(a, flags); | ||
| 135 | * | ||
| 136 | * Note: We provide the same definitions for both kmemcheck and non- | ||
| 137 | * kmemcheck kernels. This makes it harder to introduce accidental errors. It | ||
| 138 | * is also allowed to pass NULL pointers to kmemcheck_annotate_bitfield(). | ||
| 139 | */ | ||
| 140 | #define kmemcheck_bitfield_begin(name) \ | ||
| 141 | int name##_begin[0]; | ||
| 142 | |||
| 143 | #define kmemcheck_bitfield_end(name) \ | ||
| 144 | int name##_end[0]; | ||
| 145 | 164 | ||
| 146 | #define kmemcheck_annotate_bitfield(ptr, name) \ | 165 | #define kmemcheck_annotate_variable(var) \ |
| 147 | do { \ | 166 | do { \ |
| 148 | int _n; \ | ||
| 149 | \ | ||
| 150 | if (!ptr) \ | ||
| 151 | break; \ | ||
| 152 | \ | ||
| 153 | _n = (long) &((ptr)->name##_end) \ | ||
| 154 | - (long) &((ptr)->name##_begin); \ | ||
| 155 | MAYBE_BUILD_BUG_ON(_n < 0); \ | ||
| 156 | \ | ||
| 157 | kmemcheck_mark_initialized(&((ptr)->name##_begin), _n); \ | ||
| 158 | } while (0) | 167 | } while (0) |
| 159 | 168 | ||
| 160 | #define kmemcheck_annotate_variable(var) \ | 169 | #endif /* CONFIG_KMEMCHECK */ |
| 161 | do { \ | ||
| 162 | kmemcheck_mark_initialized(&(var), sizeof(var)); \ | ||
| 163 | } while (0) \ | ||
| 164 | 170 | ||
| 165 | #endif /* LINUX_KMEMCHECK_H */ | 171 | #endif /* LINUX_KMEMCHECK_H */ |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 6a9c4ddd3d95..73112250862c 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -354,6 +354,9 @@ enum { | |||
| 354 | /* max tries if error condition is still set after ->error_handler */ | 354 | /* max tries if error condition is still set after ->error_handler */ |
| 355 | ATA_EH_MAX_TRIES = 5, | 355 | ATA_EH_MAX_TRIES = 5, |
| 356 | 356 | ||
| 357 | /* sometimes resuming a link requires several retries */ | ||
| 358 | ATA_LINK_RESUME_TRIES = 5, | ||
| 359 | |||
| 357 | /* how hard are we gonna try to probe/recover devices */ | 360 | /* how hard are we gonna try to probe/recover devices */ |
| 358 | ATA_PROBE_MAX_TRIES = 3, | 361 | ATA_PROBE_MAX_TRIES = 3, |
| 359 | ATA_EH_DEV_TRIES = 3, | 362 | ATA_EH_DEV_TRIES = 3, |
diff --git a/include/linux/list_sort.h b/include/linux/list_sort.h new file mode 100644 index 000000000000..1a2df2efb771 --- /dev/null +++ b/include/linux/list_sort.h | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | #ifndef _LINUX_LIST_SORT_H | ||
| 2 | #define _LINUX_LIST_SORT_H | ||
| 3 | |||
| 4 | #include <linux/types.h> | ||
| 5 | |||
| 6 | struct list_head; | ||
| 7 | |||
| 8 | void list_sort(void *priv, struct list_head *head, | ||
| 9 | int (*cmp)(void *priv, struct list_head *a, | ||
| 10 | struct list_head *b)); | ||
| 11 | #endif | ||
diff --git a/include/linux/mfd/tmio.h b/include/linux/mfd/tmio.h index 6b9c5d06690c..9cb1834deffa 100644 --- a/include/linux/mfd/tmio.h +++ b/include/linux/mfd/tmio.h | |||
| @@ -2,6 +2,8 @@ | |||
| 2 | #define MFD_TMIO_H | 2 | #define MFD_TMIO_H |
| 3 | 3 | ||
| 4 | #include <linux/fb.h> | 4 | #include <linux/fb.h> |
| 5 | #include <linux/io.h> | ||
| 6 | #include <linux/platform_device.h> | ||
| 5 | 7 | ||
| 6 | #define tmio_ioread8(addr) readb(addr) | 8 | #define tmio_ioread8(addr) readb(addr) |
| 7 | #define tmio_ioread16(addr) readw(addr) | 9 | #define tmio_ioread16(addr) readw(addr) |
| @@ -18,11 +20,48 @@ | |||
| 18 | writew((val) >> 16, (addr) + 2); \ | 20 | writew((val) >> 16, (addr) + 2); \ |
| 19 | } while (0) | 21 | } while (0) |
| 20 | 22 | ||
| 23 | #define CNF_CMD 0x04 | ||
| 24 | #define CNF_CTL_BASE 0x10 | ||
| 25 | #define CNF_INT_PIN 0x3d | ||
| 26 | #define CNF_STOP_CLK_CTL 0x40 | ||
| 27 | #define CNF_GCLK_CTL 0x41 | ||
| 28 | #define CNF_SD_CLK_MODE 0x42 | ||
| 29 | #define CNF_PIN_STATUS 0x44 | ||
| 30 | #define CNF_PWR_CTL_1 0x48 | ||
| 31 | #define CNF_PWR_CTL_2 0x49 | ||
| 32 | #define CNF_PWR_CTL_3 0x4a | ||
| 33 | #define CNF_CARD_DETECT_MODE 0x4c | ||
| 34 | #define CNF_SD_SLOT 0x50 | ||
| 35 | #define CNF_EXT_GCLK_CTL_1 0xf0 | ||
| 36 | #define CNF_EXT_GCLK_CTL_2 0xf1 | ||
| 37 | #define CNF_EXT_GCLK_CTL_3 0xf9 | ||
| 38 | #define CNF_SD_LED_EN_1 0xfa | ||
| 39 | #define CNF_SD_LED_EN_2 0xfe | ||
| 40 | |||
| 41 | #define SDCREN 0x2 /* Enable access to MMC CTL regs. (flag in COMMAND_REG)*/ | ||
| 42 | |||
| 43 | #define sd_config_write8(base, shift, reg, val) \ | ||
| 44 | tmio_iowrite8((val), (base) + ((reg) << (shift))) | ||
| 45 | #define sd_config_write16(base, shift, reg, val) \ | ||
| 46 | tmio_iowrite16((val), (base) + ((reg) << (shift))) | ||
| 47 | #define sd_config_write32(base, shift, reg, val) \ | ||
| 48 | do { \ | ||
| 49 | tmio_iowrite16((val), (base) + ((reg) << (shift))); \ | ||
| 50 | tmio_iowrite16((val) >> 16, (base) + ((reg + 2) << (shift))); \ | ||
| 51 | } while (0) | ||
| 52 | |||
| 53 | int tmio_core_mmc_enable(void __iomem *cnf, int shift, unsigned long base); | ||
| 54 | int tmio_core_mmc_resume(void __iomem *cnf, int shift, unsigned long base); | ||
| 55 | void tmio_core_mmc_pwr(void __iomem *cnf, int shift, int state); | ||
| 56 | void tmio_core_mmc_clk_div(void __iomem *cnf, int shift, int state); | ||
| 57 | |||
| 21 | /* | 58 | /* |
| 22 | * data for the MMC controller | 59 | * data for the MMC controller |
| 23 | */ | 60 | */ |
| 24 | struct tmio_mmc_data { | 61 | struct tmio_mmc_data { |
| 25 | const unsigned int hclk; | 62 | const unsigned int hclk; |
| 63 | void (*set_pwr)(struct platform_device *host, int state); | ||
| 64 | void (*set_clk_div)(struct platform_device *host, int state); | ||
| 26 | }; | 65 | }; |
| 27 | 66 | ||
| 28 | /* | 67 | /* |
diff --git a/include/linux/mfd/wm8350/pmic.h b/include/linux/mfd/wm8350/pmic.h index be3264e286e0..e786fe9841ef 100644 --- a/include/linux/mfd/wm8350/pmic.h +++ b/include/linux/mfd/wm8350/pmic.h | |||
| @@ -666,20 +666,20 @@ | |||
| 666 | #define WM8350_ISINK_FLASH_DUR_64MS (1 << 8) | 666 | #define WM8350_ISINK_FLASH_DUR_64MS (1 << 8) |
| 667 | #define WM8350_ISINK_FLASH_DUR_96MS (2 << 8) | 667 | #define WM8350_ISINK_FLASH_DUR_96MS (2 << 8) |
| 668 | #define WM8350_ISINK_FLASH_DUR_1024MS (3 << 8) | 668 | #define WM8350_ISINK_FLASH_DUR_1024MS (3 << 8) |
| 669 | #define WM8350_ISINK_FLASH_ON_INSTANT (0 << 4) | 669 | #define WM8350_ISINK_FLASH_ON_INSTANT (0 << 0) |
| 670 | #define WM8350_ISINK_FLASH_ON_0_25S (1 << 4) | 670 | #define WM8350_ISINK_FLASH_ON_0_25S (1 << 0) |
| 671 | #define WM8350_ISINK_FLASH_ON_0_50S (2 << 4) | 671 | #define WM8350_ISINK_FLASH_ON_0_50S (2 << 0) |
| 672 | #define WM8350_ISINK_FLASH_ON_1_00S (3 << 4) | 672 | #define WM8350_ISINK_FLASH_ON_1_00S (3 << 0) |
| 673 | #define WM8350_ISINK_FLASH_ON_1_95S (1 << 4) | 673 | #define WM8350_ISINK_FLASH_ON_1_95S (1 << 0) |
| 674 | #define WM8350_ISINK_FLASH_ON_3_91S (2 << 4) | 674 | #define WM8350_ISINK_FLASH_ON_3_91S (2 << 0) |
| 675 | #define WM8350_ISINK_FLASH_ON_7_80S (3 << 4) | 675 | #define WM8350_ISINK_FLASH_ON_7_80S (3 << 0) |
| 676 | #define WM8350_ISINK_FLASH_OFF_INSTANT (0 << 0) | 676 | #define WM8350_ISINK_FLASH_OFF_INSTANT (0 << 4) |
| 677 | #define WM8350_ISINK_FLASH_OFF_0_25S (1 << 0) | 677 | #define WM8350_ISINK_FLASH_OFF_0_25S (1 << 4) |
| 678 | #define WM8350_ISINK_FLASH_OFF_0_50S (2 << 0) | 678 | #define WM8350_ISINK_FLASH_OFF_0_50S (2 << 4) |
| 679 | #define WM8350_ISINK_FLASH_OFF_1_00S (3 << 0) | 679 | #define WM8350_ISINK_FLASH_OFF_1_00S (3 << 4) |
| 680 | #define WM8350_ISINK_FLASH_OFF_1_95S (1 << 0) | 680 | #define WM8350_ISINK_FLASH_OFF_1_95S (1 << 4) |
| 681 | #define WM8350_ISINK_FLASH_OFF_3_91S (2 << 0) | 681 | #define WM8350_ISINK_FLASH_OFF_3_91S (2 << 4) |
| 682 | #define WM8350_ISINK_FLASH_OFF_7_80S (3 << 0) | 682 | #define WM8350_ISINK_FLASH_OFF_7_80S (3 << 4) |
| 683 | 683 | ||
| 684 | /* | 684 | /* |
| 685 | * Regulator Interrupts. | 685 | * Regulator Interrupts. |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 2265f28eb47a..60c467bfbabd 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -1089,6 +1089,7 @@ extern void zone_pcp_update(struct zone *zone); | |||
| 1089 | 1089 | ||
| 1090 | /* nommu.c */ | 1090 | /* nommu.c */ |
| 1091 | extern atomic_long_t mmap_pages_allocated; | 1091 | extern atomic_long_t mmap_pages_allocated; |
| 1092 | extern int nommu_shrink_inode_mappings(struct inode *, size_t, size_t); | ||
| 1092 | 1093 | ||
| 1093 | /* prio_tree.c */ | 1094 | /* prio_tree.c */ |
| 1094 | void vma_prio_tree_add(struct vm_area_struct *, struct vm_area_struct *old); | 1095 | void vma_prio_tree_add(struct vm_area_struct *, struct vm_area_struct *old); |
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 84a524afb3dc..36f96271306c 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h | |||
| @@ -122,7 +122,9 @@ struct vm_region { | |||
| 122 | unsigned long vm_pgoff; /* the offset in vm_file corresponding to vm_start */ | 122 | unsigned long vm_pgoff; /* the offset in vm_file corresponding to vm_start */ |
| 123 | struct file *vm_file; /* the backing file or NULL */ | 123 | struct file *vm_file; /* the backing file or NULL */ |
| 124 | 124 | ||
| 125 | atomic_t vm_usage; /* region usage count */ | 125 | int vm_usage; /* region usage count (access under nommu_region_sem) */ |
| 126 | bool vm_icache_flushed : 1; /* true if the icache has been flushed for | ||
| 127 | * this region */ | ||
| 126 | }; | 128 | }; |
| 127 | 129 | ||
| 128 | /* | 130 | /* |
| @@ -203,10 +205,12 @@ struct mm_struct { | |||
| 203 | struct vm_area_struct * mmap; /* list of VMAs */ | 205 | struct vm_area_struct * mmap; /* list of VMAs */ |
| 204 | struct rb_root mm_rb; | 206 | struct rb_root mm_rb; |
| 205 | struct vm_area_struct * mmap_cache; /* last find_vma result */ | 207 | struct vm_area_struct * mmap_cache; /* last find_vma result */ |
| 208 | #ifdef CONFIG_MMU | ||
| 206 | unsigned long (*get_unmapped_area) (struct file *filp, | 209 | unsigned long (*get_unmapped_area) (struct file *filp, |
| 207 | unsigned long addr, unsigned long len, | 210 | unsigned long addr, unsigned long len, |
| 208 | unsigned long pgoff, unsigned long flags); | 211 | unsigned long pgoff, unsigned long flags); |
| 209 | void (*unmap_area) (struct mm_struct *mm, unsigned long addr); | 212 | void (*unmap_area) (struct mm_struct *mm, unsigned long addr); |
| 213 | #endif | ||
| 210 | unsigned long mmap_base; /* base of mmap area */ | 214 | unsigned long mmap_base; /* base of mmap area */ |
| 211 | unsigned long task_size; /* size of task vm space */ | 215 | unsigned long task_size; /* size of task vm space */ |
| 212 | unsigned long cached_hole_size; /* if non-zero, the largest hole below free_area_cache */ | 216 | unsigned long cached_hole_size; /* if non-zero, the largest hole below free_area_cache */ |
diff --git a/include/linux/pci.h b/include/linux/pci.h index 5da0690d9cee..174e5392e51e 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -243,6 +243,7 @@ struct pci_dev { | |||
| 243 | unsigned int d2_support:1; /* Low power state D2 is supported */ | 243 | unsigned int d2_support:1; /* Low power state D2 is supported */ |
| 244 | unsigned int no_d1d2:1; /* Only allow D0 and D3 */ | 244 | unsigned int no_d1d2:1; /* Only allow D0 and D3 */ |
| 245 | unsigned int wakeup_prepared:1; | 245 | unsigned int wakeup_prepared:1; |
| 246 | unsigned int d3_delay; /* D3->D0 transition time in ms */ | ||
| 246 | 247 | ||
| 247 | #ifdef CONFIG_PCIEASPM | 248 | #ifdef CONFIG_PCIEASPM |
| 248 | struct pcie_link_state *link_state; /* ASPM link state. */ | 249 | struct pcie_link_state *link_state; /* ASPM link state. */ |
diff --git a/include/linux/phy.h b/include/linux/phy.h index b1368b8f6572..7968defd2fa7 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h | |||
| @@ -447,6 +447,7 @@ struct phy_device* get_phy_device(struct mii_bus *bus, int addr); | |||
| 447 | int phy_device_register(struct phy_device *phy); | 447 | int phy_device_register(struct phy_device *phy); |
| 448 | int phy_clear_interrupt(struct phy_device *phydev); | 448 | int phy_clear_interrupt(struct phy_device *phydev); |
| 449 | int phy_config_interrupt(struct phy_device *phydev, u32 interrupts); | 449 | int phy_config_interrupt(struct phy_device *phydev, u32 interrupts); |
| 450 | int phy_init_hw(struct phy_device *phydev); | ||
| 450 | int phy_attach_direct(struct net_device *dev, struct phy_device *phydev, | 451 | int phy_attach_direct(struct net_device *dev, struct phy_device *phydev, |
| 451 | u32 flags, phy_interface_t interface); | 452 | u32 flags, phy_interface_t interface); |
| 452 | struct phy_device * phy_attach(struct net_device *dev, | 453 | struct phy_device * phy_attach(struct net_device *dev, |
diff --git a/include/linux/poison.h b/include/linux/poison.h index 7fc194aef8c2..2110a81c5e2a 100644 --- a/include/linux/poison.h +++ b/include/linux/poison.h | |||
| @@ -2,13 +2,25 @@ | |||
| 2 | #define _LINUX_POISON_H | 2 | #define _LINUX_POISON_H |
| 3 | 3 | ||
| 4 | /********** include/linux/list.h **********/ | 4 | /********** include/linux/list.h **********/ |
| 5 | |||
| 6 | /* | ||
| 7 | * Architectures might want to move the poison pointer offset | ||
| 8 | * into some well-recognized area such as 0xdead000000000000, | ||
| 9 | * that is also not mappable by user-space exploits: | ||
| 10 | */ | ||
| 11 | #ifdef CONFIG_ILLEGAL_POINTER_VALUE | ||
| 12 | # define POISON_POINTER_DELTA _AC(CONFIG_ILLEGAL_POINTER_VALUE, UL) | ||
| 13 | #else | ||
| 14 | # define POISON_POINTER_DELTA 0 | ||
| 15 | #endif | ||
| 16 | |||
| 5 | /* | 17 | /* |
| 6 | * These are non-NULL pointers that will result in page faults | 18 | * These are non-NULL pointers that will result in page faults |
| 7 | * under normal circumstances, used to verify that nobody uses | 19 | * under normal circumstances, used to verify that nobody uses |
| 8 | * non-initialized list entries. | 20 | * non-initialized list entries. |
| 9 | */ | 21 | */ |
| 10 | #define LIST_POISON1 ((void *) 0x00100100) | 22 | #define LIST_POISON1 ((void *) 0x00100100 + POISON_POINTER_DELTA) |
| 11 | #define LIST_POISON2 ((void *) 0x00200200) | 23 | #define LIST_POISON2 ((void *) 0x00200200 + POISON_POINTER_DELTA) |
| 12 | 24 | ||
| 13 | /********** include/linux/timer.h **********/ | 25 | /********** include/linux/timer.h **********/ |
| 14 | /* | 26 | /* |
diff --git a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h index c96c1858fe2c..1ba3cf6edfbb 100644 --- a/include/linux/reiserfs_fs.h +++ b/include/linux/reiserfs_fs.h | |||
| @@ -62,6 +62,12 @@ void reiserfs_write_unlock(struct super_block *s); | |||
| 62 | int reiserfs_write_lock_once(struct super_block *s); | 62 | int reiserfs_write_lock_once(struct super_block *s); |
| 63 | void reiserfs_write_unlock_once(struct super_block *s, int lock_depth); | 63 | void reiserfs_write_unlock_once(struct super_block *s, int lock_depth); |
| 64 | 64 | ||
| 65 | #ifdef CONFIG_REISERFS_CHECK | ||
| 66 | void reiserfs_lock_check_recursive(struct super_block *s); | ||
| 67 | #else | ||
| 68 | static inline void reiserfs_lock_check_recursive(struct super_block *s) { } | ||
| 69 | #endif | ||
| 70 | |||
| 65 | /* | 71 | /* |
| 66 | * Several mutexes depend on the write lock. | 72 | * Several mutexes depend on the write lock. |
| 67 | * However sometimes we want to relax the write lock while we hold | 73 | * However sometimes we want to relax the write lock while we hold |
| @@ -92,11 +98,31 @@ void reiserfs_write_unlock_once(struct super_block *s, int lock_depth); | |||
| 92 | static inline void reiserfs_mutex_lock_safe(struct mutex *m, | 98 | static inline void reiserfs_mutex_lock_safe(struct mutex *m, |
| 93 | struct super_block *s) | 99 | struct super_block *s) |
| 94 | { | 100 | { |
| 101 | reiserfs_lock_check_recursive(s); | ||
| 95 | reiserfs_write_unlock(s); | 102 | reiserfs_write_unlock(s); |
| 96 | mutex_lock(m); | 103 | mutex_lock(m); |
| 97 | reiserfs_write_lock(s); | 104 | reiserfs_write_lock(s); |
| 98 | } | 105 | } |
| 99 | 106 | ||
| 107 | static inline void | ||
| 108 | reiserfs_mutex_lock_nested_safe(struct mutex *m, unsigned int subclass, | ||
| 109 | struct super_block *s) | ||
| 110 | { | ||
| 111 | reiserfs_lock_check_recursive(s); | ||
| 112 | reiserfs_write_unlock(s); | ||
| 113 | mutex_lock_nested(m, subclass); | ||
| 114 | reiserfs_write_lock(s); | ||
| 115 | } | ||
| 116 | |||
| 117 | static inline void | ||
| 118 | reiserfs_down_read_safe(struct rw_semaphore *sem, struct super_block *s) | ||
| 119 | { | ||
| 120 | reiserfs_lock_check_recursive(s); | ||
| 121 | reiserfs_write_unlock(s); | ||
| 122 | down_read(sem); | ||
| 123 | reiserfs_write_lock(s); | ||
| 124 | } | ||
| 125 | |||
| 100 | /* | 126 | /* |
| 101 | * When we schedule, we usually want to also release the write lock, | 127 | * When we schedule, we usually want to also release the write lock, |
| 102 | * according to the previous bkl based locking scheme of reiserfs. | 128 | * according to the previous bkl based locking scheme of reiserfs. |
diff --git a/include/linux/resource.h b/include/linux/resource.h index 40fc7e626082..f1e914eefeab 100644 --- a/include/linux/resource.h +++ b/include/linux/resource.h | |||
| @@ -3,8 +3,6 @@ | |||
| 3 | 3 | ||
| 4 | #include <linux/time.h> | 4 | #include <linux/time.h> |
| 5 | 5 | ||
| 6 | struct task_struct; | ||
| 7 | |||
| 8 | /* | 6 | /* |
| 9 | * Resource control/accounting header file for linux | 7 | * Resource control/accounting header file for linux |
| 10 | */ | 8 | */ |
| @@ -70,6 +68,12 @@ struct rlimit { | |||
| 70 | */ | 68 | */ |
| 71 | #include <asm/resource.h> | 69 | #include <asm/resource.h> |
| 72 | 70 | ||
| 71 | #ifdef __KERNEL__ | ||
| 72 | |||
| 73 | struct task_struct; | ||
| 74 | |||
| 73 | int getrusage(struct task_struct *p, int who, struct rusage __user *ru); | 75 | int getrusage(struct task_struct *p, int who, struct rusage __user *ru); |
| 74 | 76 | ||
| 77 | #endif /* __KERNEL__ */ | ||
| 78 | |||
| 75 | #endif | 79 | #endif |
diff --git a/include/linux/sched.h b/include/linux/sched.h index f2f842db03ce..6f7bba93929b 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -377,6 +377,8 @@ extern int sysctl_max_map_count; | |||
| 377 | 377 | ||
| 378 | #include <linux/aio.h> | 378 | #include <linux/aio.h> |
| 379 | 379 | ||
| 380 | #ifdef CONFIG_MMU | ||
| 381 | extern void arch_pick_mmap_layout(struct mm_struct *mm); | ||
| 380 | extern unsigned long | 382 | extern unsigned long |
| 381 | arch_get_unmapped_area(struct file *, unsigned long, unsigned long, | 383 | arch_get_unmapped_area(struct file *, unsigned long, unsigned long, |
| 382 | unsigned long, unsigned long); | 384 | unsigned long, unsigned long); |
| @@ -386,6 +388,9 @@ arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr, | |||
| 386 | unsigned long flags); | 388 | unsigned long flags); |
| 387 | extern void arch_unmap_area(struct mm_struct *, unsigned long); | 389 | extern void arch_unmap_area(struct mm_struct *, unsigned long); |
| 388 | extern void arch_unmap_area_topdown(struct mm_struct *, unsigned long); | 390 | extern void arch_unmap_area_topdown(struct mm_struct *, unsigned long); |
| 391 | #else | ||
| 392 | static inline void arch_pick_mmap_layout(struct mm_struct *mm) {} | ||
| 393 | #endif | ||
| 389 | 394 | ||
| 390 | #if USE_SPLIT_PTLOCKS | 395 | #if USE_SPLIT_PTLOCKS |
| 391 | /* | 396 | /* |
| @@ -2491,8 +2496,6 @@ static inline void set_task_cpu(struct task_struct *p, unsigned int cpu) | |||
| 2491 | 2496 | ||
| 2492 | #endif /* CONFIG_SMP */ | 2497 | #endif /* CONFIG_SMP */ |
| 2493 | 2498 | ||
| 2494 | extern void arch_pick_mmap_layout(struct mm_struct *mm); | ||
| 2495 | |||
| 2496 | #ifdef CONFIG_TRACING | 2499 | #ifdef CONFIG_TRACING |
| 2497 | extern void | 2500 | extern void |
| 2498 | __trace_special(void *__tr, void *__data, | 2501 | __trace_special(void *__tr, void *__data, |
| @@ -2601,6 +2604,28 @@ static inline void mm_init_owner(struct mm_struct *mm, struct task_struct *p) | |||
| 2601 | } | 2604 | } |
| 2602 | #endif /* CONFIG_MM_OWNER */ | 2605 | #endif /* CONFIG_MM_OWNER */ |
| 2603 | 2606 | ||
| 2607 | static inline unsigned long task_rlimit(const struct task_struct *tsk, | ||
| 2608 | unsigned int limit) | ||
| 2609 | { | ||
| 2610 | return ACCESS_ONCE(tsk->signal->rlim[limit].rlim_cur); | ||
| 2611 | } | ||
| 2612 | |||
| 2613 | static inline unsigned long task_rlimit_max(const struct task_struct *tsk, | ||
| 2614 | unsigned int limit) | ||
| 2615 | { | ||
| 2616 | return ACCESS_ONCE(tsk->signal->rlim[limit].rlim_max); | ||
| 2617 | } | ||
| 2618 | |||
| 2619 | static inline unsigned long rlimit(unsigned int limit) | ||
| 2620 | { | ||
| 2621 | return task_rlimit(current, limit); | ||
| 2622 | } | ||
| 2623 | |||
| 2624 | static inline unsigned long rlimit_max(unsigned int limit) | ||
| 2625 | { | ||
| 2626 | return task_rlimit_max(current, limit); | ||
| 2627 | } | ||
| 2628 | |||
| 2604 | #endif /* __KERNEL__ */ | 2629 | #endif /* __KERNEL__ */ |
| 2605 | 2630 | ||
| 2606 | #endif | 2631 | #endif |
diff --git a/include/linux/serio.h b/include/linux/serio.h index e2f3044d4a4a..813d26c247ec 100644 --- a/include/linux/serio.h +++ b/include/linux/serio.h | |||
| @@ -136,25 +136,6 @@ static inline void serio_continue_rx(struct serio *serio) | |||
| 136 | spin_unlock_irq(&serio->lock); | 136 | spin_unlock_irq(&serio->lock); |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | /* | ||
| 140 | * Use the following functions to pin serio's driver in process context | ||
| 141 | */ | ||
| 142 | static inline int serio_pin_driver(struct serio *serio) | ||
| 143 | { | ||
| 144 | return mutex_lock_interruptible(&serio->drv_mutex); | ||
| 145 | } | ||
| 146 | |||
| 147 | static inline void serio_pin_driver_uninterruptible(struct serio *serio) | ||
| 148 | { | ||
| 149 | mutex_lock(&serio->drv_mutex); | ||
| 150 | } | ||
| 151 | |||
| 152 | static inline void serio_unpin_driver(struct serio *serio) | ||
| 153 | { | ||
| 154 | mutex_unlock(&serio->drv_mutex); | ||
| 155 | } | ||
| 156 | |||
| 157 | |||
| 158 | #endif | 139 | #endif |
| 159 | 140 | ||
| 160 | /* | 141 | /* |
diff --git a/include/linux/string.h b/include/linux/string.h index 651839a2a755..a716ee2a8adb 100644 --- a/include/linux/string.h +++ b/include/linux/string.h | |||
| @@ -72,7 +72,10 @@ static inline __must_check char *strstrip(char *str) | |||
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | #ifndef __HAVE_ARCH_STRSTR | 74 | #ifndef __HAVE_ARCH_STRSTR |
| 75 | extern char * strstr(const char *,const char *); | 75 | extern char * strstr(const char *, const char *); |
| 76 | #endif | ||
| 77 | #ifndef __HAVE_ARCH_STRNSTR | ||
| 78 | extern char * strnstr(const char *, const char *, size_t); | ||
| 76 | #endif | 79 | #endif |
| 77 | #ifndef __HAVE_ARCH_STRLEN | 80 | #ifndef __HAVE_ARCH_STRLEN |
| 78 | extern __kernel_size_t strlen(const char *); | 81 | extern __kernel_size_t strlen(const char *); |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 65793e90d6f6..207466a49f3d 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -195,7 +195,7 @@ struct perf_event_attr; | |||
| 195 | static const struct syscall_metadata __used \ | 195 | static const struct syscall_metadata __used \ |
| 196 | __attribute__((__aligned__(4))) \ | 196 | __attribute__((__aligned__(4))) \ |
| 197 | __attribute__((section("__syscalls_metadata"))) \ | 197 | __attribute__((section("__syscalls_metadata"))) \ |
| 198 | __syscall_meta_##sname = { \ | 198 | __syscall_meta__##sname = { \ |
| 199 | .name = "sys_"#sname, \ | 199 | .name = "sys_"#sname, \ |
| 200 | .nb_args = 0, \ | 200 | .nb_args = 0, \ |
| 201 | .enter_event = &event_enter__##sname, \ | 201 | .enter_event = &event_enter__##sname, \ |
diff --git a/include/linux/tty.h b/include/linux/tty.h index ef3a2947b102..6abfcf5b5887 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h | |||
| @@ -464,7 +464,7 @@ extern int tty_port_alloc_xmit_buf(struct tty_port *port); | |||
| 464 | extern void tty_port_free_xmit_buf(struct tty_port *port); | 464 | extern void tty_port_free_xmit_buf(struct tty_port *port); |
| 465 | extern void tty_port_put(struct tty_port *port); | 465 | extern void tty_port_put(struct tty_port *port); |
| 466 | 466 | ||
| 467 | extern inline struct tty_port *tty_port_get(struct tty_port *port) | 467 | static inline struct tty_port *tty_port_get(struct tty_port *port) |
| 468 | { | 468 | { |
| 469 | if (port) | 469 | if (port) |
| 470 | kref_get(&port->kref); | 470 | kref_get(&port->kref); |
| @@ -486,7 +486,7 @@ extern void tty_port_close(struct tty_port *port, | |||
| 486 | struct tty_struct *tty, struct file *filp); | 486 | struct tty_struct *tty, struct file *filp); |
| 487 | extern int tty_port_open(struct tty_port *port, | 487 | extern int tty_port_open(struct tty_port *port, |
| 488 | struct tty_struct *tty, struct file *filp); | 488 | struct tty_struct *tty, struct file *filp); |
| 489 | extern inline int tty_port_users(struct tty_port *port) | 489 | static inline int tty_port_users(struct tty_port *port) |
| 490 | { | 490 | { |
| 491 | return port->count + port->blocked_open; | 491 | return port->count + port->blocked_open; |
| 492 | } | 492 | } |
diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h index 6b58367d145e..d512d98dfb7d 100644 --- a/include/linux/uaccess.h +++ b/include/linux/uaccess.h | |||
| @@ -94,6 +94,7 @@ static inline unsigned long __copy_from_user_nocache(void *to, | |||
| 94 | * happens, handle that and return -EFAULT. | 94 | * happens, handle that and return -EFAULT. |
| 95 | */ | 95 | */ |
| 96 | extern long probe_kernel_read(void *dst, void *src, size_t size); | 96 | extern long probe_kernel_read(void *dst, void *src, size_t size); |
| 97 | extern long __probe_kernel_read(void *dst, void *src, size_t size); | ||
| 97 | 98 | ||
| 98 | /* | 99 | /* |
| 99 | * probe_kernel_write(): safely attempt to write to a location | 100 | * probe_kernel_write(): safely attempt to write to a location |
| @@ -104,6 +105,7 @@ extern long probe_kernel_read(void *dst, void *src, size_t size); | |||
| 104 | * Safely write to address @dst from the buffer at @src. If a kernel fault | 105 | * Safely write to address @dst from the buffer at @src. If a kernel fault |
| 105 | * happens, handle that and return -EFAULT. | 106 | * happens, handle that and return -EFAULT. |
| 106 | */ | 107 | */ |
| 107 | extern long probe_kernel_write(void *dst, void *src, size_t size); | 108 | extern long notrace probe_kernel_write(void *dst, void *src, size_t size); |
| 109 | extern long notrace __probe_kernel_write(void *dst, void *src, size_t size); | ||
| 108 | 110 | ||
| 109 | #endif /* __LINUX_UACCESS_H__ */ | 111 | #endif /* __LINUX_UACCESS_H__ */ |
