diff options
| author | Linus Walleij <linus.walleij@linaro.org> | 2015-01-30 04:38:15 -0500 |
|---|---|---|
| committer | Linus Walleij <linus.walleij@linaro.org> | 2015-01-30 04:38:15 -0500 |
| commit | b6afdbe8e841e20297a38e2af0a053d8eb26c19b (patch) | |
| tree | 4a336799dcd7d77a7d1f1e9b46b9e48551053524 /include/linux | |
| parent | 8090f7917b5d7cc2390afe33cb12f819173ef9c8 (diff) | |
| parent | 26bc420b59a38e4e6685a73345a0def461136dce (diff) | |
Merge tag 'v3.19-rc6' into devel
Linux 3.19-rc6
Diffstat (limited to 'include/linux')
29 files changed, 175 insertions, 82 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 856d381b1d5b..d459cd17b477 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
| @@ -147,8 +147,8 @@ void acpi_numa_arch_fixup(void); | |||
| 147 | 147 | ||
| 148 | #ifdef CONFIG_ACPI_HOTPLUG_CPU | 148 | #ifdef CONFIG_ACPI_HOTPLUG_CPU |
| 149 | /* Arch dependent functions for cpu hotplug support */ | 149 | /* Arch dependent functions for cpu hotplug support */ |
| 150 | int acpi_map_lsapic(acpi_handle handle, int physid, int *pcpu); | 150 | int acpi_map_cpu(acpi_handle handle, int physid, int *pcpu); |
| 151 | int acpi_unmap_lsapic(int cpu); | 151 | int acpi_unmap_cpu(int cpu); |
| 152 | #endif /* CONFIG_ACPI_HOTPLUG_CPU */ | 152 | #endif /* CONFIG_ACPI_HOTPLUG_CPU */ |
| 153 | 153 | ||
| 154 | int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base); | 154 | int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base); |
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h index 8aded9ab2e4e..5735e7130d63 100644 --- a/include/linux/blk-mq.h +++ b/include/linux/blk-mq.h | |||
| @@ -34,7 +34,6 @@ struct blk_mq_hw_ctx { | |||
| 34 | unsigned long flags; /* BLK_MQ_F_* flags */ | 34 | unsigned long flags; /* BLK_MQ_F_* flags */ |
| 35 | 35 | ||
| 36 | struct request_queue *queue; | 36 | struct request_queue *queue; |
| 37 | unsigned int queue_num; | ||
| 38 | struct blk_flush_queue *fq; | 37 | struct blk_flush_queue *fq; |
| 39 | 38 | ||
| 40 | void *driver_data; | 39 | void *driver_data; |
| @@ -54,7 +53,7 @@ struct blk_mq_hw_ctx { | |||
| 54 | unsigned long dispatched[BLK_MQ_MAX_DISPATCH_ORDER]; | 53 | unsigned long dispatched[BLK_MQ_MAX_DISPATCH_ORDER]; |
| 55 | 54 | ||
| 56 | unsigned int numa_node; | 55 | unsigned int numa_node; |
| 57 | unsigned int cmd_size; /* per-request extra data */ | 56 | unsigned int queue_num; |
| 58 | 57 | ||
| 59 | atomic_t nr_active; | 58 | atomic_t nr_active; |
| 60 | 59 | ||
| @@ -195,13 +194,16 @@ static inline u16 blk_mq_unique_tag_to_tag(u32 unique_tag) | |||
| 195 | struct blk_mq_hw_ctx *blk_mq_map_queue(struct request_queue *, const int ctx_index); | 194 | struct blk_mq_hw_ctx *blk_mq_map_queue(struct request_queue *, const int ctx_index); |
| 196 | struct blk_mq_hw_ctx *blk_mq_alloc_single_hw_queue(struct blk_mq_tag_set *, unsigned int, int); | 195 | struct blk_mq_hw_ctx *blk_mq_alloc_single_hw_queue(struct blk_mq_tag_set *, unsigned int, int); |
| 197 | 196 | ||
| 197 | int blk_mq_request_started(struct request *rq); | ||
| 198 | void blk_mq_start_request(struct request *rq); | 198 | void blk_mq_start_request(struct request *rq); |
| 199 | void blk_mq_end_request(struct request *rq, int error); | 199 | void blk_mq_end_request(struct request *rq, int error); |
| 200 | void __blk_mq_end_request(struct request *rq, int error); | 200 | void __blk_mq_end_request(struct request *rq, int error); |
| 201 | 201 | ||
| 202 | void blk_mq_requeue_request(struct request *rq); | 202 | void blk_mq_requeue_request(struct request *rq); |
| 203 | void blk_mq_add_to_requeue_list(struct request *rq, bool at_head); | 203 | void blk_mq_add_to_requeue_list(struct request *rq, bool at_head); |
| 204 | void blk_mq_cancel_requeue_work(struct request_queue *q); | ||
| 204 | void blk_mq_kick_requeue_list(struct request_queue *q); | 205 | void blk_mq_kick_requeue_list(struct request_queue *q); |
| 206 | void blk_mq_abort_requeue_list(struct request_queue *q); | ||
| 205 | void blk_mq_complete_request(struct request *rq); | 207 | void blk_mq_complete_request(struct request *rq); |
| 206 | 208 | ||
| 207 | void blk_mq_stop_hw_queue(struct blk_mq_hw_ctx *hctx); | 209 | void blk_mq_stop_hw_queue(struct blk_mq_hw_ctx *hctx); |
| @@ -212,6 +214,8 @@ void blk_mq_start_stopped_hw_queues(struct request_queue *q, bool async); | |||
| 212 | void blk_mq_delay_queue(struct blk_mq_hw_ctx *hctx, unsigned long msecs); | 214 | void blk_mq_delay_queue(struct blk_mq_hw_ctx *hctx, unsigned long msecs); |
| 213 | void blk_mq_tag_busy_iter(struct blk_mq_hw_ctx *hctx, busy_iter_fn *fn, | 215 | void blk_mq_tag_busy_iter(struct blk_mq_hw_ctx *hctx, busy_iter_fn *fn, |
| 214 | void *priv); | 216 | void *priv); |
| 217 | void blk_mq_unfreeze_queue(struct request_queue *q); | ||
| 218 | void blk_mq_freeze_queue_start(struct request_queue *q); | ||
| 215 | 219 | ||
| 216 | /* | 220 | /* |
| 217 | * Driver command data is immediately after the request. So subtract request | 221 | * Driver command data is immediately after the request. So subtract request |
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h index 445d59231bc4..c294e3e25e37 100644 --- a/include/linux/blk_types.h +++ b/include/linux/blk_types.h | |||
| @@ -190,6 +190,7 @@ enum rq_flag_bits { | |||
| 190 | __REQ_PM, /* runtime pm request */ | 190 | __REQ_PM, /* runtime pm request */ |
| 191 | __REQ_HASHED, /* on IO scheduler merge hash */ | 191 | __REQ_HASHED, /* on IO scheduler merge hash */ |
| 192 | __REQ_MQ_INFLIGHT, /* track inflight for MQ */ | 192 | __REQ_MQ_INFLIGHT, /* track inflight for MQ */ |
| 193 | __REQ_NO_TIMEOUT, /* requests may never expire */ | ||
| 193 | __REQ_NR_BITS, /* stops here */ | 194 | __REQ_NR_BITS, /* stops here */ |
| 194 | }; | 195 | }; |
| 195 | 196 | ||
| @@ -243,5 +244,6 @@ enum rq_flag_bits { | |||
| 243 | #define REQ_PM (1ULL << __REQ_PM) | 244 | #define REQ_PM (1ULL << __REQ_PM) |
| 244 | #define REQ_HASHED (1ULL << __REQ_HASHED) | 245 | #define REQ_HASHED (1ULL << __REQ_HASHED) |
| 245 | #define REQ_MQ_INFLIGHT (1ULL << __REQ_MQ_INFLIGHT) | 246 | #define REQ_MQ_INFLIGHT (1ULL << __REQ_MQ_INFLIGHT) |
| 247 | #define REQ_NO_TIMEOUT (1ULL << __REQ_NO_TIMEOUT) | ||
| 246 | 248 | ||
| 247 | #endif /* __LINUX_BLK_TYPES_H */ | 249 | #endif /* __LINUX_BLK_TYPES_H */ |
diff --git a/include/linux/ceph/osd_client.h b/include/linux/ceph/osd_client.h index 5d86416d35f2..61b19c46bdb3 100644 --- a/include/linux/ceph/osd_client.h +++ b/include/linux/ceph/osd_client.h | |||
| @@ -87,8 +87,8 @@ struct ceph_osd_req_op { | |||
| 87 | struct ceph_osd_data osd_data; | 87 | struct ceph_osd_data osd_data; |
| 88 | } extent; | 88 | } extent; |
| 89 | struct { | 89 | struct { |
| 90 | __le32 name_len; | 90 | u32 name_len; |
| 91 | __le32 value_len; | 91 | u32 value_len; |
| 92 | __u8 cmp_op; /* CEPH_OSD_CMPXATTR_OP_* */ | 92 | __u8 cmp_op; /* CEPH_OSD_CMPXATTR_OP_* */ |
| 93 | __u8 cmp_mode; /* CEPH_OSD_CMPXATTR_MODE_* */ | 93 | __u8 cmp_mode; /* CEPH_OSD_CMPXATTR_MODE_* */ |
| 94 | struct ceph_osd_data osd_data; | 94 | struct ceph_osd_data osd_data; |
diff --git a/include/linux/compiler.h b/include/linux/compiler.h index a1c81f80978e..33063f872ee3 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h | |||
| @@ -215,7 +215,7 @@ static __always_inline void __read_once_size(volatile void *p, void *res, int si | |||
| 215 | } | 215 | } |
| 216 | } | 216 | } |
| 217 | 217 | ||
| 218 | static __always_inline void __assign_once_size(volatile void *p, void *res, int size) | 218 | static __always_inline void __write_once_size(volatile void *p, void *res, int size) |
| 219 | { | 219 | { |
| 220 | switch (size) { | 220 | switch (size) { |
| 221 | case 1: *(volatile __u8 *)p = *(__u8 *)res; break; | 221 | case 1: *(volatile __u8 *)p = *(__u8 *)res; break; |
| @@ -235,15 +235,15 @@ static __always_inline void __assign_once_size(volatile void *p, void *res, int | |||
| 235 | /* | 235 | /* |
| 236 | * Prevent the compiler from merging or refetching reads or writes. The | 236 | * Prevent the compiler from merging or refetching reads or writes. The |
| 237 | * compiler is also forbidden from reordering successive instances of | 237 | * compiler is also forbidden from reordering successive instances of |
| 238 | * READ_ONCE, ASSIGN_ONCE and ACCESS_ONCE (see below), but only when the | 238 | * READ_ONCE, WRITE_ONCE and ACCESS_ONCE (see below), but only when the |
| 239 | * compiler is aware of some particular ordering. One way to make the | 239 | * compiler is aware of some particular ordering. One way to make the |
| 240 | * compiler aware of ordering is to put the two invocations of READ_ONCE, | 240 | * compiler aware of ordering is to put the two invocations of READ_ONCE, |
| 241 | * ASSIGN_ONCE or ACCESS_ONCE() in different C statements. | 241 | * WRITE_ONCE or ACCESS_ONCE() in different C statements. |
| 242 | * | 242 | * |
| 243 | * In contrast to ACCESS_ONCE these two macros will also work on aggregate | 243 | * In contrast to ACCESS_ONCE these two macros will also work on aggregate |
| 244 | * data types like structs or unions. If the size of the accessed data | 244 | * data types like structs or unions. If the size of the accessed data |
| 245 | * type exceeds the word size of the machine (e.g., 32 bits or 64 bits) | 245 | * type exceeds the word size of the machine (e.g., 32 bits or 64 bits) |
| 246 | * READ_ONCE() and ASSIGN_ONCE() will fall back to memcpy and print a | 246 | * READ_ONCE() and WRITE_ONCE() will fall back to memcpy and print a |
| 247 | * compile-time warning. | 247 | * compile-time warning. |
| 248 | * | 248 | * |
| 249 | * Their two major use cases are: (1) Mediating communication between | 249 | * Their two major use cases are: (1) Mediating communication between |
| @@ -257,8 +257,8 @@ static __always_inline void __assign_once_size(volatile void *p, void *res, int | |||
| 257 | #define READ_ONCE(x) \ | 257 | #define READ_ONCE(x) \ |
| 258 | ({ typeof(x) __val; __read_once_size(&x, &__val, sizeof(__val)); __val; }) | 258 | ({ typeof(x) __val; __read_once_size(&x, &__val, sizeof(__val)); __val; }) |
| 259 | 259 | ||
| 260 | #define ASSIGN_ONCE(val, x) \ | 260 | #define WRITE_ONCE(x, val) \ |
| 261 | ({ typeof(x) __val; __val = val; __assign_once_size(&x, &__val, sizeof(__val)); __val; }) | 261 | ({ typeof(x) __val; __val = val; __write_once_size(&x, &__val, sizeof(__val)); __val; }) |
| 262 | 262 | ||
| 263 | #endif /* __KERNEL__ */ | 263 | #endif /* __KERNEL__ */ |
| 264 | 264 | ||
diff --git a/include/linux/cpu_cooling.h b/include/linux/cpu_cooling.h index c303d383def1..bd955270d5aa 100644 --- a/include/linux/cpu_cooling.h +++ b/include/linux/cpu_cooling.h | |||
| @@ -50,7 +50,7 @@ static inline struct thermal_cooling_device * | |||
| 50 | of_cpufreq_cooling_register(struct device_node *np, | 50 | of_cpufreq_cooling_register(struct device_node *np, |
| 51 | const struct cpumask *clip_cpus) | 51 | const struct cpumask *clip_cpus) |
| 52 | { | 52 | { |
| 53 | return NULL; | 53 | return ERR_PTR(-ENOSYS); |
| 54 | } | 54 | } |
| 55 | #endif | 55 | #endif |
| 56 | 56 | ||
| @@ -65,13 +65,13 @@ unsigned long cpufreq_cooling_get_level(unsigned int cpu, unsigned int freq); | |||
| 65 | static inline struct thermal_cooling_device * | 65 | static inline struct thermal_cooling_device * |
| 66 | cpufreq_cooling_register(const struct cpumask *clip_cpus) | 66 | cpufreq_cooling_register(const struct cpumask *clip_cpus) |
| 67 | { | 67 | { |
| 68 | return NULL; | 68 | return ERR_PTR(-ENOSYS); |
| 69 | } | 69 | } |
| 70 | static inline struct thermal_cooling_device * | 70 | static inline struct thermal_cooling_device * |
| 71 | of_cpufreq_cooling_register(struct device_node *np, | 71 | of_cpufreq_cooling_register(struct device_node *np, |
| 72 | const struct cpumask *clip_cpus) | 72 | const struct cpumask *clip_cpus) |
| 73 | { | 73 | { |
| 74 | return NULL; | 74 | return ERR_PTR(-ENOSYS); |
| 75 | } | 75 | } |
| 76 | static inline | 76 | static inline |
| 77 | void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev) | 77 | void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev) |
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index a07e087f54b2..ab70f3bc44ad 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h | |||
| @@ -53,7 +53,6 @@ struct cpuidle_state { | |||
| 53 | }; | 53 | }; |
| 54 | 54 | ||
| 55 | /* Idle State Flags */ | 55 | /* Idle State Flags */ |
| 56 | #define CPUIDLE_FLAG_TIME_INVALID (0x01) /* is residency time measurable? */ | ||
| 57 | #define CPUIDLE_FLAG_COUPLED (0x02) /* state applies to multiple cpus */ | 56 | #define CPUIDLE_FLAG_COUPLED (0x02) /* state applies to multiple cpus */ |
| 58 | #define CPUIDLE_FLAG_TIMER_STOP (0x04) /* timer is stopped on this state */ | 57 | #define CPUIDLE_FLAG_TIMER_STOP (0x04) /* timer is stopped on this state */ |
| 59 | 58 | ||
| @@ -89,8 +88,6 @@ DECLARE_PER_CPU(struct cpuidle_device, cpuidle_dev); | |||
| 89 | /** | 88 | /** |
| 90 | * cpuidle_get_last_residency - retrieves the last state's residency time | 89 | * cpuidle_get_last_residency - retrieves the last state's residency time |
| 91 | * @dev: the target CPU | 90 | * @dev: the target CPU |
| 92 | * | ||
| 93 | * NOTE: this value is invalid if CPUIDLE_FLAG_TIME_INVALID is set | ||
| 94 | */ | 91 | */ |
| 95 | static inline int cpuidle_get_last_residency(struct cpuidle_device *dev) | 92 | static inline int cpuidle_get_last_residency(struct cpuidle_device *dev) |
| 96 | { | 93 | { |
diff --git a/include/linux/fs.h b/include/linux/fs.h index f90c0282c114..42efe13077b6 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -135,7 +135,7 @@ typedef void (dio_iodone_t)(struct kiocb *iocb, loff_t offset, | |||
| 135 | #define FMODE_CAN_WRITE ((__force fmode_t)0x40000) | 135 | #define FMODE_CAN_WRITE ((__force fmode_t)0x40000) |
| 136 | 136 | ||
| 137 | /* File was opened by fanotify and shouldn't generate fanotify events */ | 137 | /* File was opened by fanotify and shouldn't generate fanotify events */ |
| 138 | #define FMODE_NONOTIFY ((__force fmode_t)0x1000000) | 138 | #define FMODE_NONOTIFY ((__force fmode_t)0x4000000) |
| 139 | 139 | ||
| 140 | /* | 140 | /* |
| 141 | * Flag for rw_copy_check_uvector and compat_rw_copy_check_uvector | 141 | * Flag for rw_copy_check_uvector and compat_rw_copy_check_uvector |
diff --git a/include/linux/genetlink.h b/include/linux/genetlink.h index 55b685719d52..09460d6d6682 100644 --- a/include/linux/genetlink.h +++ b/include/linux/genetlink.h | |||
| @@ -11,6 +11,10 @@ extern void genl_unlock(void); | |||
| 11 | extern int lockdep_genl_is_held(void); | 11 | extern int lockdep_genl_is_held(void); |
| 12 | #endif | 12 | #endif |
| 13 | 13 | ||
| 14 | /* for synchronisation between af_netlink and genetlink */ | ||
| 15 | extern atomic_t genl_sk_destructing_cnt; | ||
| 16 | extern wait_queue_head_t genl_sk_destructing_waitq; | ||
| 17 | |||
| 14 | /** | 18 | /** |
| 15 | * rcu_dereference_genl - rcu_dereference with debug checking | 19 | * rcu_dereference_genl - rcu_dereference with debug checking |
| 16 | * @p: The pointer to read, prior to dereferencing | 20 | * @p: The pointer to read, prior to dereferencing |
diff --git a/include/linux/kdb.h b/include/linux/kdb.h index 290db1269c4c..75ae2e2631fc 100644 --- a/include/linux/kdb.h +++ b/include/linux/kdb.h | |||
| @@ -13,11 +13,54 @@ | |||
| 13 | * Copyright (C) 2009 Jason Wessel <jason.wessel@windriver.com> | 13 | * Copyright (C) 2009 Jason Wessel <jason.wessel@windriver.com> |
| 14 | */ | 14 | */ |
| 15 | 15 | ||
| 16 | /* Shifted versions of the command enable bits are be used if the command | ||
| 17 | * has no arguments (see kdb_check_flags). This allows commands, such as | ||
| 18 | * go, to have different permissions depending upon whether it is called | ||
| 19 | * with an argument. | ||
| 20 | */ | ||
| 21 | #define KDB_ENABLE_NO_ARGS_SHIFT 10 | ||
| 22 | |||
| 16 | typedef enum { | 23 | typedef enum { |
| 17 | KDB_REPEAT_NONE = 0, /* Do not repeat this command */ | 24 | KDB_ENABLE_ALL = (1 << 0), /* Enable everything */ |
| 18 | KDB_REPEAT_NO_ARGS, /* Repeat the command without arguments */ | 25 | KDB_ENABLE_MEM_READ = (1 << 1), |
| 19 | KDB_REPEAT_WITH_ARGS, /* Repeat the command including its arguments */ | 26 | KDB_ENABLE_MEM_WRITE = (1 << 2), |
| 20 | } kdb_repeat_t; | 27 | KDB_ENABLE_REG_READ = (1 << 3), |
| 28 | KDB_ENABLE_REG_WRITE = (1 << 4), | ||
| 29 | KDB_ENABLE_INSPECT = (1 << 5), | ||
| 30 | KDB_ENABLE_FLOW_CTRL = (1 << 6), | ||
| 31 | KDB_ENABLE_SIGNAL = (1 << 7), | ||
| 32 | KDB_ENABLE_REBOOT = (1 << 8), | ||
| 33 | /* User exposed values stop here, all remaining flags are | ||
| 34 | * exclusively used to describe a commands behaviour. | ||
| 35 | */ | ||
| 36 | |||
| 37 | KDB_ENABLE_ALWAYS_SAFE = (1 << 9), | ||
| 38 | KDB_ENABLE_MASK = (1 << KDB_ENABLE_NO_ARGS_SHIFT) - 1, | ||
| 39 | |||
| 40 | KDB_ENABLE_ALL_NO_ARGS = KDB_ENABLE_ALL << KDB_ENABLE_NO_ARGS_SHIFT, | ||
| 41 | KDB_ENABLE_MEM_READ_NO_ARGS = KDB_ENABLE_MEM_READ | ||
| 42 | << KDB_ENABLE_NO_ARGS_SHIFT, | ||
| 43 | KDB_ENABLE_MEM_WRITE_NO_ARGS = KDB_ENABLE_MEM_WRITE | ||
| 44 | << KDB_ENABLE_NO_ARGS_SHIFT, | ||
| 45 | KDB_ENABLE_REG_READ_NO_ARGS = KDB_ENABLE_REG_READ | ||
| 46 | << KDB_ENABLE_NO_ARGS_SHIFT, | ||
| 47 | KDB_ENABLE_REG_WRITE_NO_ARGS = KDB_ENABLE_REG_WRITE | ||
| 48 | << KDB_ENABLE_NO_ARGS_SHIFT, | ||
| 49 | KDB_ENABLE_INSPECT_NO_ARGS = KDB_ENABLE_INSPECT | ||
| 50 | << KDB_ENABLE_NO_ARGS_SHIFT, | ||
| 51 | KDB_ENABLE_FLOW_CTRL_NO_ARGS = KDB_ENABLE_FLOW_CTRL | ||
| 52 | << KDB_ENABLE_NO_ARGS_SHIFT, | ||
| 53 | KDB_ENABLE_SIGNAL_NO_ARGS = KDB_ENABLE_SIGNAL | ||
| 54 | << KDB_ENABLE_NO_ARGS_SHIFT, | ||
| 55 | KDB_ENABLE_REBOOT_NO_ARGS = KDB_ENABLE_REBOOT | ||
| 56 | << KDB_ENABLE_NO_ARGS_SHIFT, | ||
| 57 | KDB_ENABLE_ALWAYS_SAFE_NO_ARGS = KDB_ENABLE_ALWAYS_SAFE | ||
| 58 | << KDB_ENABLE_NO_ARGS_SHIFT, | ||
| 59 | KDB_ENABLE_MASK_NO_ARGS = KDB_ENABLE_MASK << KDB_ENABLE_NO_ARGS_SHIFT, | ||
| 60 | |||
| 61 | KDB_REPEAT_NO_ARGS = 0x40000000, /* Repeat the command w/o arguments */ | ||
| 62 | KDB_REPEAT_WITH_ARGS = 0x80000000, /* Repeat the command with args */ | ||
| 63 | } kdb_cmdflags_t; | ||
| 21 | 64 | ||
| 22 | typedef int (*kdb_func_t)(int, const char **); | 65 | typedef int (*kdb_func_t)(int, const char **); |
| 23 | 66 | ||
| @@ -62,6 +105,7 @@ extern atomic_t kdb_event; | |||
| 62 | #define KDB_BADLENGTH (-19) | 105 | #define KDB_BADLENGTH (-19) |
| 63 | #define KDB_NOBP (-20) | 106 | #define KDB_NOBP (-20) |
| 64 | #define KDB_BADADDR (-21) | 107 | #define KDB_BADADDR (-21) |
| 108 | #define KDB_NOPERM (-22) | ||
| 65 | 109 | ||
| 66 | /* | 110 | /* |
| 67 | * kdb_diemsg | 111 | * kdb_diemsg |
| @@ -146,17 +190,17 @@ static inline const char *kdb_walk_kallsyms(loff_t *pos) | |||
| 146 | 190 | ||
| 147 | /* Dynamic kdb shell command registration */ | 191 | /* Dynamic kdb shell command registration */ |
| 148 | extern int kdb_register(char *, kdb_func_t, char *, char *, short); | 192 | extern int kdb_register(char *, kdb_func_t, char *, char *, short); |
| 149 | extern int kdb_register_repeat(char *, kdb_func_t, char *, char *, | 193 | extern int kdb_register_flags(char *, kdb_func_t, char *, char *, |
| 150 | short, kdb_repeat_t); | 194 | short, kdb_cmdflags_t); |
| 151 | extern int kdb_unregister(char *); | 195 | extern int kdb_unregister(char *); |
| 152 | #else /* ! CONFIG_KGDB_KDB */ | 196 | #else /* ! CONFIG_KGDB_KDB */ |
| 153 | static inline __printf(1, 2) int kdb_printf(const char *fmt, ...) { return 0; } | 197 | static inline __printf(1, 2) int kdb_printf(const char *fmt, ...) { return 0; } |
| 154 | static inline void kdb_init(int level) {} | 198 | static inline void kdb_init(int level) {} |
| 155 | static inline int kdb_register(char *cmd, kdb_func_t func, char *usage, | 199 | static inline int kdb_register(char *cmd, kdb_func_t func, char *usage, |
| 156 | char *help, short minlen) { return 0; } | 200 | char *help, short minlen) { return 0; } |
| 157 | static inline int kdb_register_repeat(char *cmd, kdb_func_t func, char *usage, | 201 | static inline int kdb_register_flags(char *cmd, kdb_func_t func, char *usage, |
| 158 | char *help, short minlen, | 202 | char *help, short minlen, |
| 159 | kdb_repeat_t repeat) { return 0; } | 203 | kdb_cmdflags_t flags) { return 0; } |
| 160 | static inline int kdb_unregister(char *cmd) { return 0; } | 204 | static inline int kdb_unregister(char *cmd) { return 0; } |
| 161 | #endif /* CONFIG_KGDB_KDB */ | 205 | #endif /* CONFIG_KGDB_KDB */ |
| 162 | enum { | 206 | enum { |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 2d182413b1db..91f705de2c0b 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -231,6 +231,7 @@ enum { | |||
| 231 | ATA_FLAG_SW_ACTIVITY = (1 << 22), /* driver supports sw activity | 231 | ATA_FLAG_SW_ACTIVITY = (1 << 22), /* driver supports sw activity |
| 232 | * led */ | 232 | * led */ |
| 233 | ATA_FLAG_NO_DIPM = (1 << 23), /* host not happy with DIPM */ | 233 | ATA_FLAG_NO_DIPM = (1 << 23), /* host not happy with DIPM */ |
| 234 | ATA_FLAG_LOWTAG = (1 << 24), /* host wants lowest available tag */ | ||
| 234 | 235 | ||
| 235 | /* bits 24:31 of ap->flags are reserved for LLD specific flags */ | 236 | /* bits 24:31 of ap->flags are reserved for LLD specific flags */ |
| 236 | 237 | ||
| @@ -422,6 +423,7 @@ enum { | |||
| 422 | ATA_HORKAGE_NO_NCQ_TRIM = (1 << 19), /* don't use queued TRIM */ | 423 | ATA_HORKAGE_NO_NCQ_TRIM = (1 << 19), /* don't use queued TRIM */ |
| 423 | ATA_HORKAGE_NOLPM = (1 << 20), /* don't use LPM */ | 424 | ATA_HORKAGE_NOLPM = (1 << 20), /* don't use LPM */ |
| 424 | ATA_HORKAGE_WD_BROKEN_LPM = (1 << 21), /* some WDs have broken LPM */ | 425 | ATA_HORKAGE_WD_BROKEN_LPM = (1 << 21), /* some WDs have broken LPM */ |
| 426 | ATA_HORKAGE_ZERO_AFTER_TRIM = (1 << 22),/* guarantees zero after trim */ | ||
| 425 | 427 | ||
| 426 | /* DMA mask for user DMA control: User visible values; DO NOT | 428 | /* DMA mask for user DMA control: User visible values; DO NOT |
| 427 | renumber */ | 429 | renumber */ |
diff --git a/include/linux/mfd/stmpe.h b/include/linux/mfd/stmpe.h index 575a86c7fcbd..f742b6717d52 100644 --- a/include/linux/mfd/stmpe.h +++ b/include/linux/mfd/stmpe.h | |||
| @@ -50,6 +50,8 @@ enum { | |||
| 50 | STMPE_IDX_GPEDR_MSB, | 50 | STMPE_IDX_GPEDR_MSB, |
| 51 | STMPE_IDX_GPRER_LSB, | 51 | STMPE_IDX_GPRER_LSB, |
| 52 | STMPE_IDX_GPFER_LSB, | 52 | STMPE_IDX_GPFER_LSB, |
| 53 | STMPE_IDX_GPPUR_LSB, | ||
| 54 | STMPE_IDX_GPPDR_LSB, | ||
| 53 | STMPE_IDX_GPAFR_U_MSB, | 55 | STMPE_IDX_GPAFR_U_MSB, |
| 54 | STMPE_IDX_IEGPIOR_LSB, | 56 | STMPE_IDX_IEGPIOR_LSB, |
| 55 | STMPE_IDX_ISGPIOR_LSB, | 57 | STMPE_IDX_ISGPIOR_LSB, |
| @@ -113,24 +115,6 @@ extern int stmpe_set_altfunc(struct stmpe *stmpe, u32 pins, | |||
| 113 | extern int stmpe_enable(struct stmpe *stmpe, unsigned int blocks); | 115 | extern int stmpe_enable(struct stmpe *stmpe, unsigned int blocks); |
| 114 | extern int stmpe_disable(struct stmpe *stmpe, unsigned int blocks); | 116 | extern int stmpe_disable(struct stmpe *stmpe, unsigned int blocks); |
| 115 | 117 | ||
| 116 | struct matrix_keymap_data; | ||
| 117 | |||
| 118 | /** | ||
| 119 | * struct stmpe_keypad_platform_data - STMPE keypad platform data | ||
| 120 | * @keymap_data: key map table and size | ||
| 121 | * @debounce_ms: debounce interval, in ms. Maximum is | ||
| 122 | * %STMPE_KEYPAD_MAX_DEBOUNCE. | ||
| 123 | * @scan_count: number of key scanning cycles to confirm key data. | ||
| 124 | * Maximum is %STMPE_KEYPAD_MAX_SCAN_COUNT. | ||
| 125 | * @no_autorepeat: disable key autorepeat | ||
| 126 | */ | ||
| 127 | struct stmpe_keypad_platform_data { | ||
| 128 | const struct matrix_keymap_data *keymap_data; | ||
| 129 | unsigned int debounce_ms; | ||
| 130 | unsigned int scan_count; | ||
| 131 | bool no_autorepeat; | ||
| 132 | }; | ||
| 133 | |||
| 134 | #define STMPE_GPIO_NOREQ_811_TOUCH (0xf0) | 118 | #define STMPE_GPIO_NOREQ_811_TOUCH (0xf0) |
| 135 | 119 | ||
| 136 | /** | 120 | /** |
| @@ -199,7 +183,6 @@ struct stmpe_ts_platform_data { | |||
| 199 | * @irq_gpio: gpio number over which irq will be requested (significant only if | 183 | * @irq_gpio: gpio number over which irq will be requested (significant only if |
| 200 | * irq_over_gpio is true) | 184 | * irq_over_gpio is true) |
| 201 | * @gpio: GPIO-specific platform data | 185 | * @gpio: GPIO-specific platform data |
| 202 | * @keypad: keypad-specific platform data | ||
| 203 | * @ts: touchscreen-specific platform data | 186 | * @ts: touchscreen-specific platform data |
| 204 | */ | 187 | */ |
| 205 | struct stmpe_platform_data { | 188 | struct stmpe_platform_data { |
| @@ -212,7 +195,6 @@ struct stmpe_platform_data { | |||
| 212 | int autosleep_timeout; | 195 | int autosleep_timeout; |
| 213 | 196 | ||
| 214 | struct stmpe_gpio_platform_data *gpio; | 197 | struct stmpe_gpio_platform_data *gpio; |
| 215 | struct stmpe_keypad_platform_data *keypad; | ||
| 216 | struct stmpe_ts_platform_data *ts; | 198 | struct stmpe_ts_platform_data *ts; |
| 217 | }; | 199 | }; |
| 218 | 200 | ||
diff --git a/include/linux/mm.h b/include/linux/mm.h index f80d0194c9bc..80fc92a49649 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -1952,7 +1952,7 @@ extern int expand_downwards(struct vm_area_struct *vma, | |||
| 1952 | #if VM_GROWSUP | 1952 | #if VM_GROWSUP |
| 1953 | extern int expand_upwards(struct vm_area_struct *vma, unsigned long address); | 1953 | extern int expand_upwards(struct vm_area_struct *vma, unsigned long address); |
| 1954 | #else | 1954 | #else |
| 1955 | #define expand_upwards(vma, address) do { } while (0) | 1955 | #define expand_upwards(vma, address) (0) |
| 1956 | #endif | 1956 | #endif |
| 1957 | 1957 | ||
| 1958 | /* Look up the first VMA which satisfies addr < vm_end, NULL if none. */ | 1958 | /* Look up the first VMA which satisfies addr < vm_end, NULL if none. */ |
diff --git a/include/linux/mmc/sdhci.h b/include/linux/mmc/sdhci.h index 375af80bde7d..f767a0de611f 100644 --- a/include/linux/mmc/sdhci.h +++ b/include/linux/mmc/sdhci.h | |||
| @@ -137,6 +137,7 @@ struct sdhci_host { | |||
| 137 | #define SDHCI_SDR104_NEEDS_TUNING (1<<10) /* SDR104/HS200 needs tuning */ | 137 | #define SDHCI_SDR104_NEEDS_TUNING (1<<10) /* SDR104/HS200 needs tuning */ |
| 138 | #define SDHCI_USING_RETUNING_TIMER (1<<11) /* Host is using a retuning timer for the card */ | 138 | #define SDHCI_USING_RETUNING_TIMER (1<<11) /* Host is using a retuning timer for the card */ |
| 139 | #define SDHCI_USE_64_BIT_DMA (1<<12) /* Use 64-bit DMA */ | 139 | #define SDHCI_USE_64_BIT_DMA (1<<12) /* Use 64-bit DMA */ |
| 140 | #define SDHCI_HS400_TUNING (1<<13) /* Tuning for HS400 */ | ||
| 140 | 141 | ||
| 141 | unsigned int version; /* SDHCI spec. version */ | 142 | unsigned int version; /* SDHCI spec. version */ |
| 142 | 143 | ||
diff --git a/include/linux/module.h b/include/linux/module.h index ebfb0e153c6a..b653d7c0a05a 100644 --- a/include/linux/module.h +++ b/include/linux/module.h | |||
| @@ -444,7 +444,7 @@ extern void __module_put_and_exit(struct module *mod, long code) | |||
| 444 | #define module_put_and_exit(code) __module_put_and_exit(THIS_MODULE, code) | 444 | #define module_put_and_exit(code) __module_put_and_exit(THIS_MODULE, code) |
| 445 | 445 | ||
| 446 | #ifdef CONFIG_MODULE_UNLOAD | 446 | #ifdef CONFIG_MODULE_UNLOAD |
| 447 | unsigned long module_refcount(struct module *mod); | 447 | int module_refcount(struct module *mod); |
| 448 | void __symbol_put(const char *symbol); | 448 | void __symbol_put(const char *symbol); |
| 449 | #define symbol_put(x) __symbol_put(VMLINUX_SYMBOL_STR(x)) | 449 | #define symbol_put(x) __symbol_put(VMLINUX_SYMBOL_STR(x)) |
| 450 | void symbol_put_addr(void *addr); | 450 | void symbol_put_addr(void *addr); |
diff --git a/include/linux/moduleloader.h b/include/linux/moduleloader.h index 7eeb9bbfb816..f7556261fe3c 100644 --- a/include/linux/moduleloader.h +++ b/include/linux/moduleloader.h | |||
| @@ -26,7 +26,7 @@ unsigned int arch_mod_section_prepend(struct module *mod, unsigned int section); | |||
| 26 | void *module_alloc(unsigned long size); | 26 | void *module_alloc(unsigned long size); |
| 27 | 27 | ||
| 28 | /* Free memory returned from module_alloc. */ | 28 | /* Free memory returned from module_alloc. */ |
| 29 | void module_free(struct module *mod, void *module_region); | 29 | void module_memfree(void *module_region); |
| 30 | 30 | ||
| 31 | /* | 31 | /* |
| 32 | * Apply the given relocation to the (simplified) ELF. Return -error | 32 | * Apply the given relocation to the (simplified) ELF. Return -error |
| @@ -82,4 +82,6 @@ int module_finalize(const Elf_Ehdr *hdr, | |||
| 82 | /* Any cleanup needed when module leaves. */ | 82 | /* Any cleanup needed when module leaves. */ |
| 83 | void module_arch_cleanup(struct module *mod); | 83 | void module_arch_cleanup(struct module *mod); |
| 84 | 84 | ||
| 85 | /* Any cleanup before freeing mod->module_init */ | ||
| 86 | void module_arch_freeing_init(struct module *mod); | ||
| 85 | #endif | 87 | #endif |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index c31f74d76ebd..52fd8e8694cf 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -852,11 +852,11 @@ typedef u16 (*select_queue_fallback_t)(struct net_device *dev, | |||
| 852 | * 3. Update dev->stats asynchronously and atomically, and define | 852 | * 3. Update dev->stats asynchronously and atomically, and define |
| 853 | * neither operation. | 853 | * neither operation. |
| 854 | * | 854 | * |
| 855 | * int (*ndo_vlan_rx_add_vid)(struct net_device *dev, __be16 proto, u16t vid); | 855 | * int (*ndo_vlan_rx_add_vid)(struct net_device *dev, __be16 proto, u16 vid); |
| 856 | * If device support VLAN filtering this function is called when a | 856 | * If device support VLAN filtering this function is called when a |
| 857 | * VLAN id is registered. | 857 | * VLAN id is registered. |
| 858 | * | 858 | * |
| 859 | * int (*ndo_vlan_rx_kill_vid)(struct net_device *dev, unsigned short vid); | 859 | * int (*ndo_vlan_rx_kill_vid)(struct net_device *dev, __be16 proto, u16 vid); |
| 860 | * If device support VLAN filtering this function is called when a | 860 | * If device support VLAN filtering this function is called when a |
| 861 | * VLAN id is unregistered. | 861 | * VLAN id is unregistered. |
| 862 | * | 862 | * |
| @@ -1012,12 +1012,15 @@ typedef u16 (*select_queue_fallback_t)(struct net_device *dev, | |||
| 1012 | * Callback to use for xmit over the accelerated station. This | 1012 | * Callback to use for xmit over the accelerated station. This |
| 1013 | * is used in place of ndo_start_xmit on accelerated net | 1013 | * is used in place of ndo_start_xmit on accelerated net |
| 1014 | * devices. | 1014 | * devices. |
| 1015 | * bool (*ndo_gso_check) (struct sk_buff *skb, | 1015 | * netdev_features_t (*ndo_features_check) (struct sk_buff *skb, |
| 1016 | * struct net_device *dev); | 1016 | * struct net_device *dev |
| 1017 | * netdev_features_t features); | ||
| 1017 | * Called by core transmit path to determine if device is capable of | 1018 | * Called by core transmit path to determine if device is capable of |
| 1018 | * performing GSO on a packet. The device returns true if it is | 1019 | * performing offload operations on a given packet. This is to give |
| 1019 | * able to GSO the packet, false otherwise. If the return value is | 1020 | * the device an opportunity to implement any restrictions that cannot |
| 1020 | * false the stack will do software GSO. | 1021 | * be otherwise expressed by feature flags. The check is called with |
| 1022 | * the set of features that the stack has calculated and it returns | ||
| 1023 | * those the driver believes to be appropriate. | ||
| 1021 | * | 1024 | * |
| 1022 | * int (*ndo_switch_parent_id_get)(struct net_device *dev, | 1025 | * int (*ndo_switch_parent_id_get)(struct net_device *dev, |
| 1023 | * struct netdev_phys_item_id *psid); | 1026 | * struct netdev_phys_item_id *psid); |
| @@ -1178,8 +1181,9 @@ struct net_device_ops { | |||
| 1178 | struct net_device *dev, | 1181 | struct net_device *dev, |
| 1179 | void *priv); | 1182 | void *priv); |
| 1180 | int (*ndo_get_lock_subclass)(struct net_device *dev); | 1183 | int (*ndo_get_lock_subclass)(struct net_device *dev); |
| 1181 | bool (*ndo_gso_check) (struct sk_buff *skb, | 1184 | netdev_features_t (*ndo_features_check) (struct sk_buff *skb, |
| 1182 | struct net_device *dev); | 1185 | struct net_device *dev, |
| 1186 | netdev_features_t features); | ||
| 1183 | #ifdef CONFIG_NET_SWITCHDEV | 1187 | #ifdef CONFIG_NET_SWITCHDEV |
| 1184 | int (*ndo_switch_parent_id_get)(struct net_device *dev, | 1188 | int (*ndo_switch_parent_id_get)(struct net_device *dev, |
| 1185 | struct netdev_phys_item_id *psid); | 1189 | struct netdev_phys_item_id *psid); |
| @@ -2081,7 +2085,7 @@ extern rwlock_t dev_base_lock; /* Device list lock */ | |||
| 2081 | list_for_each_entry_continue_rcu(d, &(net)->dev_base_head, dev_list) | 2085 | list_for_each_entry_continue_rcu(d, &(net)->dev_base_head, dev_list) |
| 2082 | #define for_each_netdev_in_bond_rcu(bond, slave) \ | 2086 | #define for_each_netdev_in_bond_rcu(bond, slave) \ |
| 2083 | for_each_netdev_rcu(&init_net, slave) \ | 2087 | for_each_netdev_rcu(&init_net, slave) \ |
| 2084 | if (netdev_master_upper_dev_get_rcu(slave) == bond) | 2088 | if (netdev_master_upper_dev_get_rcu(slave) == (bond)) |
| 2085 | #define net_device_entry(lh) list_entry(lh, struct net_device, dev_list) | 2089 | #define net_device_entry(lh) list_entry(lh, struct net_device, dev_list) |
| 2086 | 2090 | ||
| 2087 | static inline struct net_device *next_net_device(struct net_device *dev) | 2091 | static inline struct net_device *next_net_device(struct net_device *dev) |
| @@ -3611,8 +3615,6 @@ static inline bool netif_needs_gso(struct net_device *dev, struct sk_buff *skb, | |||
| 3611 | netdev_features_t features) | 3615 | netdev_features_t features) |
| 3612 | { | 3616 | { |
| 3613 | return skb_is_gso(skb) && (!skb_gso_ok(skb, features) || | 3617 | return skb_is_gso(skb) && (!skb_gso_ok(skb, features) || |
| 3614 | (dev->netdev_ops->ndo_gso_check && | ||
| 3615 | !dev->netdev_ops->ndo_gso_check(skb, dev)) || | ||
| 3616 | unlikely((skb->ip_summed != CHECKSUM_PARTIAL) && | 3618 | unlikely((skb->ip_summed != CHECKSUM_PARTIAL) && |
| 3617 | (skb->ip_summed != CHECKSUM_UNNECESSARY))); | 3619 | (skb->ip_summed != CHECKSUM_UNNECESSARY))); |
| 3618 | } | 3620 | } |
diff --git a/include/linux/netlink.h b/include/linux/netlink.h index 9e572daa15d5..02fc86d2348e 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h | |||
| @@ -46,8 +46,8 @@ struct netlink_kernel_cfg { | |||
| 46 | unsigned int flags; | 46 | unsigned int flags; |
| 47 | void (*input)(struct sk_buff *skb); | 47 | void (*input)(struct sk_buff *skb); |
| 48 | struct mutex *cb_mutex; | 48 | struct mutex *cb_mutex; |
| 49 | int (*bind)(int group); | 49 | int (*bind)(struct net *net, int group); |
| 50 | void (*unbind)(int group); | 50 | void (*unbind)(struct net *net, int group); |
| 51 | bool (*compare)(struct net *net, struct sock *sk); | 51 | bool (*compare)(struct net *net, struct sock *sk); |
| 52 | }; | 52 | }; |
| 53 | 53 | ||
diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h index 1e37fbb78f7a..ddea982355f3 100644 --- a/include/linux/nfs_fs_sb.h +++ b/include/linux/nfs_fs_sb.h | |||
| @@ -74,6 +74,9 @@ struct nfs_client { | |||
| 74 | /* idmapper */ | 74 | /* idmapper */ |
| 75 | struct idmap * cl_idmap; | 75 | struct idmap * cl_idmap; |
| 76 | 76 | ||
| 77 | /* Client owner identifier */ | ||
| 78 | const char * cl_owner_id; | ||
| 79 | |||
| 77 | /* Our own IP address, as a null-terminated string. | 80 | /* Our own IP address, as a null-terminated string. |
| 78 | * This is used to generate the mv0 callback address. | 81 | * This is used to generate the mv0 callback address. |
| 79 | */ | 82 | */ |
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 7ea069cd3257..4b3736f7065c 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h | |||
| @@ -251,7 +251,7 @@ pgoff_t page_cache_prev_hole(struct address_space *mapping, | |||
| 251 | #define FGP_NOWAIT 0x00000020 | 251 | #define FGP_NOWAIT 0x00000020 |
| 252 | 252 | ||
| 253 | struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset, | 253 | struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset, |
| 254 | int fgp_flags, gfp_t cache_gfp_mask, gfp_t radix_gfp_mask); | 254 | int fgp_flags, gfp_t cache_gfp_mask); |
| 255 | 255 | ||
| 256 | /** | 256 | /** |
| 257 | * find_get_page - find and get a page reference | 257 | * find_get_page - find and get a page reference |
| @@ -266,13 +266,13 @@ struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset, | |||
| 266 | static inline struct page *find_get_page(struct address_space *mapping, | 266 | static inline struct page *find_get_page(struct address_space *mapping, |
| 267 | pgoff_t offset) | 267 | pgoff_t offset) |
| 268 | { | 268 | { |
| 269 | return pagecache_get_page(mapping, offset, 0, 0, 0); | 269 | return pagecache_get_page(mapping, offset, 0, 0); |
| 270 | } | 270 | } |
| 271 | 271 | ||
| 272 | static inline struct page *find_get_page_flags(struct address_space *mapping, | 272 | static inline struct page *find_get_page_flags(struct address_space *mapping, |
| 273 | pgoff_t offset, int fgp_flags) | 273 | pgoff_t offset, int fgp_flags) |
| 274 | { | 274 | { |
| 275 | return pagecache_get_page(mapping, offset, fgp_flags, 0, 0); | 275 | return pagecache_get_page(mapping, offset, fgp_flags, 0); |
| 276 | } | 276 | } |
| 277 | 277 | ||
| 278 | /** | 278 | /** |
| @@ -292,7 +292,7 @@ static inline struct page *find_get_page_flags(struct address_space *mapping, | |||
| 292 | static inline struct page *find_lock_page(struct address_space *mapping, | 292 | static inline struct page *find_lock_page(struct address_space *mapping, |
| 293 | pgoff_t offset) | 293 | pgoff_t offset) |
| 294 | { | 294 | { |
| 295 | return pagecache_get_page(mapping, offset, FGP_LOCK, 0, 0); | 295 | return pagecache_get_page(mapping, offset, FGP_LOCK, 0); |
| 296 | } | 296 | } |
| 297 | 297 | ||
| 298 | /** | 298 | /** |
| @@ -319,7 +319,7 @@ static inline struct page *find_or_create_page(struct address_space *mapping, | |||
| 319 | { | 319 | { |
| 320 | return pagecache_get_page(mapping, offset, | 320 | return pagecache_get_page(mapping, offset, |
| 321 | FGP_LOCK|FGP_ACCESSED|FGP_CREAT, | 321 | FGP_LOCK|FGP_ACCESSED|FGP_CREAT, |
| 322 | gfp_mask, gfp_mask & GFP_RECLAIM_MASK); | 322 | gfp_mask); |
| 323 | } | 323 | } |
| 324 | 324 | ||
| 325 | /** | 325 | /** |
| @@ -340,8 +340,7 @@ static inline struct page *grab_cache_page_nowait(struct address_space *mapping, | |||
| 340 | { | 340 | { |
| 341 | return pagecache_get_page(mapping, index, | 341 | return pagecache_get_page(mapping, index, |
| 342 | FGP_LOCK|FGP_CREAT|FGP_NOFS|FGP_NOWAIT, | 342 | FGP_LOCK|FGP_CREAT|FGP_NOFS|FGP_NOWAIT, |
| 343 | mapping_gfp_mask(mapping), | 343 | mapping_gfp_mask(mapping)); |
| 344 | GFP_NOFS); | ||
| 345 | } | 344 | } |
| 346 | 345 | ||
| 347 | struct page *find_get_entry(struct address_space *mapping, pgoff_t offset); | 346 | struct page *find_get_entry(struct address_space *mapping, pgoff_t offset); |
diff --git a/include/linux/pci.h b/include/linux/pci.h index 360a966a97a5..9603094ed59b 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -175,6 +175,8 @@ enum pci_dev_flags { | |||
| 175 | PCI_DEV_FLAGS_DMA_ALIAS_DEVFN = (__force pci_dev_flags_t) (1 << 4), | 175 | PCI_DEV_FLAGS_DMA_ALIAS_DEVFN = (__force pci_dev_flags_t) (1 << 4), |
| 176 | /* Use a PCIe-to-PCI bridge alias even if !pci_is_pcie */ | 176 | /* Use a PCIe-to-PCI bridge alias even if !pci_is_pcie */ |
| 177 | PCI_DEV_FLAG_PCIE_BRIDGE_ALIAS = (__force pci_dev_flags_t) (1 << 5), | 177 | PCI_DEV_FLAG_PCIE_BRIDGE_ALIAS = (__force pci_dev_flags_t) (1 << 5), |
| 178 | /* Do not use bus resets for device */ | ||
| 179 | PCI_DEV_FLAGS_NO_BUS_RESET = (__force pci_dev_flags_t) (1 << 6), | ||
| 178 | }; | 180 | }; |
| 179 | 181 | ||
| 180 | enum pci_irq_reroute_variant { | 182 | enum pci_irq_reroute_variant { |
| @@ -1065,6 +1067,7 @@ resource_size_t pcibios_retrieve_fw_addr(struct pci_dev *dev, int idx); | |||
| 1065 | void pci_bus_assign_resources(const struct pci_bus *bus); | 1067 | void pci_bus_assign_resources(const struct pci_bus *bus); |
| 1066 | void pci_bus_size_bridges(struct pci_bus *bus); | 1068 | void pci_bus_size_bridges(struct pci_bus *bus); |
| 1067 | int pci_claim_resource(struct pci_dev *, int); | 1069 | int pci_claim_resource(struct pci_dev *, int); |
| 1070 | int pci_claim_bridge_resource(struct pci_dev *bridge, int i); | ||
| 1068 | void pci_assign_unassigned_resources(void); | 1071 | void pci_assign_unassigned_resources(void); |
| 1069 | void pci_assign_unassigned_bridge_resources(struct pci_dev *bridge); | 1072 | void pci_assign_unassigned_bridge_resources(struct pci_dev *bridge); |
| 1070 | void pci_assign_unassigned_bus_resources(struct pci_bus *bus); | 1073 | void pci_assign_unassigned_bus_resources(struct pci_bus *bus); |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 486e84ccb1f9..4f7a61ca4b39 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
| @@ -79,11 +79,6 @@ struct perf_branch_stack { | |||
| 79 | struct perf_branch_entry entries[0]; | 79 | struct perf_branch_entry entries[0]; |
| 80 | }; | 80 | }; |
| 81 | 81 | ||
| 82 | struct perf_regs { | ||
| 83 | __u64 abi; | ||
| 84 | struct pt_regs *regs; | ||
| 85 | }; | ||
| 86 | |||
| 87 | struct task_struct; | 82 | struct task_struct; |
| 88 | 83 | ||
| 89 | /* | 84 | /* |
| @@ -610,7 +605,14 @@ struct perf_sample_data { | |||
| 610 | u32 reserved; | 605 | u32 reserved; |
| 611 | } cpu_entry; | 606 | } cpu_entry; |
| 612 | struct perf_callchain_entry *callchain; | 607 | struct perf_callchain_entry *callchain; |
| 608 | |||
| 609 | /* | ||
| 610 | * regs_user may point to task_pt_regs or to regs_user_copy, depending | ||
| 611 | * on arch details. | ||
| 612 | */ | ||
| 613 | struct perf_regs regs_user; | 613 | struct perf_regs regs_user; |
| 614 | struct pt_regs regs_user_copy; | ||
| 615 | |||
| 614 | struct perf_regs regs_intr; | 616 | struct perf_regs regs_intr; |
| 615 | u64 stack_user_size; | 617 | u64 stack_user_size; |
| 616 | } ____cacheline_aligned; | 618 | } ____cacheline_aligned; |
diff --git a/include/linux/perf_regs.h b/include/linux/perf_regs.h index 3c73d5fe18be..a5f98d53d732 100644 --- a/include/linux/perf_regs.h +++ b/include/linux/perf_regs.h | |||
| @@ -1,11 +1,19 @@ | |||
| 1 | #ifndef _LINUX_PERF_REGS_H | 1 | #ifndef _LINUX_PERF_REGS_H |
| 2 | #define _LINUX_PERF_REGS_H | 2 | #define _LINUX_PERF_REGS_H |
| 3 | 3 | ||
| 4 | struct perf_regs { | ||
| 5 | __u64 abi; | ||
| 6 | struct pt_regs *regs; | ||
| 7 | }; | ||
| 8 | |||
| 4 | #ifdef CONFIG_HAVE_PERF_REGS | 9 | #ifdef CONFIG_HAVE_PERF_REGS |
| 5 | #include <asm/perf_regs.h> | 10 | #include <asm/perf_regs.h> |
| 6 | u64 perf_reg_value(struct pt_regs *regs, int idx); | 11 | u64 perf_reg_value(struct pt_regs *regs, int idx); |
| 7 | int perf_reg_validate(u64 mask); | 12 | int perf_reg_validate(u64 mask); |
| 8 | u64 perf_reg_abi(struct task_struct *task); | 13 | u64 perf_reg_abi(struct task_struct *task); |
| 14 | void perf_get_regs_user(struct perf_regs *regs_user, | ||
| 15 | struct pt_regs *regs, | ||
| 16 | struct pt_regs *regs_user_copy); | ||
| 9 | #else | 17 | #else |
| 10 | static inline u64 perf_reg_value(struct pt_regs *regs, int idx) | 18 | static inline u64 perf_reg_value(struct pt_regs *regs, int idx) |
| 11 | { | 19 | { |
| @@ -21,5 +29,13 @@ static inline u64 perf_reg_abi(struct task_struct *task) | |||
| 21 | { | 29 | { |
| 22 | return PERF_SAMPLE_REGS_ABI_NONE; | 30 | return PERF_SAMPLE_REGS_ABI_NONE; |
| 23 | } | 31 | } |
| 32 | |||
| 33 | static inline void perf_get_regs_user(struct perf_regs *regs_user, | ||
| 34 | struct pt_regs *regs, | ||
| 35 | struct pt_regs *regs_user_copy) | ||
| 36 | { | ||
| 37 | regs_user->regs = task_pt_regs(current); | ||
| 38 | regs_user->abi = perf_reg_abi(current); | ||
| 39 | } | ||
| 24 | #endif /* CONFIG_HAVE_PERF_REGS */ | 40 | #endif /* CONFIG_HAVE_PERF_REGS */ |
| 25 | #endif /* _LINUX_PERF_REGS_H */ | 41 | #endif /* _LINUX_PERF_REGS_H */ |
diff --git a/include/linux/phy/omap_control_phy.h b/include/linux/phy/omap_control_phy.h index e9e6cfbfbb58..eb7d4a135a9e 100644 --- a/include/linux/phy/omap_control_phy.h +++ b/include/linux/phy/omap_control_phy.h | |||
| @@ -66,7 +66,7 @@ enum omap_control_usb_mode { | |||
| 66 | #define OMAP_CTRL_PIPE3_PHY_TX_RX_POWEROFF 0x0 | 66 | #define OMAP_CTRL_PIPE3_PHY_TX_RX_POWEROFF 0x0 |
| 67 | 67 | ||
| 68 | #define OMAP_CTRL_PCIE_PCS_MASK 0xff | 68 | #define OMAP_CTRL_PCIE_PCS_MASK 0xff |
| 69 | #define OMAP_CTRL_PCIE_PCS_DELAY_COUNT_SHIFT 0x8 | 69 | #define OMAP_CTRL_PCIE_PCS_DELAY_COUNT_SHIFT 16 |
| 70 | 70 | ||
| 71 | #define OMAP_CTRL_USB2_PHY_PD BIT(28) | 71 | #define OMAP_CTRL_USB2_PHY_PD BIT(28) |
| 72 | 72 | ||
| @@ -79,7 +79,7 @@ enum omap_control_usb_mode { | |||
| 79 | void omap_control_phy_power(struct device *dev, int on); | 79 | void omap_control_phy_power(struct device *dev, int on); |
| 80 | void omap_control_usb_set_mode(struct device *dev, | 80 | void omap_control_usb_set_mode(struct device *dev, |
| 81 | enum omap_control_usb_mode mode); | 81 | enum omap_control_usb_mode mode); |
| 82 | void omap_control_pcie_pcs(struct device *dev, u8 id, u8 delay); | 82 | void omap_control_pcie_pcs(struct device *dev, u8 delay); |
| 83 | #else | 83 | #else |
| 84 | 84 | ||
| 85 | static inline void omap_control_phy_power(struct device *dev, int on) | 85 | static inline void omap_control_phy_power(struct device *dev, int on) |
| @@ -91,7 +91,7 @@ static inline void omap_control_usb_set_mode(struct device *dev, | |||
| 91 | { | 91 | { |
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | static inline void omap_control_pcie_pcs(struct device *dev, u8 id, u8 delay) | 94 | static inline void omap_control_pcie_pcs(struct device *dev, u8 delay) |
| 95 | { | 95 | { |
| 96 | } | 96 | } |
| 97 | #endif | 97 | #endif |
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h index 6cd20d5e651b..a9edab2c787a 100644 --- a/include/linux/pm_domain.h +++ b/include/linux/pm_domain.h | |||
| @@ -271,6 +271,8 @@ typedef struct generic_pm_domain *(*genpd_xlate_t)(struct of_phandle_args *args, | |||
| 271 | int __of_genpd_add_provider(struct device_node *np, genpd_xlate_t xlate, | 271 | int __of_genpd_add_provider(struct device_node *np, genpd_xlate_t xlate, |
| 272 | void *data); | 272 | void *data); |
| 273 | void of_genpd_del_provider(struct device_node *np); | 273 | void of_genpd_del_provider(struct device_node *np); |
| 274 | struct generic_pm_domain *of_genpd_get_from_provider( | ||
| 275 | struct of_phandle_args *genpdspec); | ||
| 274 | 276 | ||
| 275 | struct generic_pm_domain *__of_genpd_xlate_simple( | 277 | struct generic_pm_domain *__of_genpd_xlate_simple( |
| 276 | struct of_phandle_args *genpdspec, | 278 | struct of_phandle_args *genpdspec, |
| @@ -288,6 +290,12 @@ static inline int __of_genpd_add_provider(struct device_node *np, | |||
| 288 | } | 290 | } |
| 289 | static inline void of_genpd_del_provider(struct device_node *np) {} | 291 | static inline void of_genpd_del_provider(struct device_node *np) {} |
| 290 | 292 | ||
| 293 | static inline struct generic_pm_domain *of_genpd_get_from_provider( | ||
| 294 | struct of_phandle_args *genpdspec) | ||
| 295 | { | ||
| 296 | return NULL; | ||
| 297 | } | ||
| 298 | |||
| 291 | #define __of_genpd_xlate_simple NULL | 299 | #define __of_genpd_xlate_simple NULL |
| 292 | #define __of_genpd_xlate_onecell NULL | 300 | #define __of_genpd_xlate_onecell NULL |
| 293 | 301 | ||
diff --git a/include/linux/rmap.h b/include/linux/rmap.h index c0c2bce6b0b7..d9d7e7e56352 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h | |||
| @@ -37,6 +37,16 @@ struct anon_vma { | |||
| 37 | atomic_t refcount; | 37 | atomic_t refcount; |
| 38 | 38 | ||
| 39 | /* | 39 | /* |
| 40 | * Count of child anon_vmas and VMAs which points to this anon_vma. | ||
| 41 | * | ||
| 42 | * This counter is used for making decision about reusing anon_vma | ||
| 43 | * instead of forking new one. See comments in function anon_vma_clone. | ||
| 44 | */ | ||
| 45 | unsigned degree; | ||
| 46 | |||
| 47 | struct anon_vma *parent; /* Parent of this anon_vma */ | ||
| 48 | |||
| 49 | /* | ||
| 40 | * NOTE: the LSB of the rb_root.rb_node is set by | 50 | * NOTE: the LSB of the rb_root.rb_node is set by |
| 41 | * mm_take_all_locks() _after_ taking the above lock. So the | 51 | * mm_take_all_locks() _after_ taking the above lock. So the |
| 42 | * rb_root must only be read/written after taking the above lock | 52 | * rb_root must only be read/written after taking the above lock |
diff --git a/include/linux/thermal.h b/include/linux/thermal.h index c611a02fbc51..fc52e307efab 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h | |||
| @@ -38,7 +38,7 @@ | |||
| 38 | #define THERMAL_CSTATE_INVALID -1UL | 38 | #define THERMAL_CSTATE_INVALID -1UL |
| 39 | 39 | ||
| 40 | /* No upper/lower limit requirement */ | 40 | /* No upper/lower limit requirement */ |
| 41 | #define THERMAL_NO_LIMIT THERMAL_CSTATE_INVALID | 41 | #define THERMAL_NO_LIMIT ((u32)~0) |
| 42 | 42 | ||
| 43 | /* Unit conversion macros */ | 43 | /* Unit conversion macros */ |
| 44 | #define KELVIN_TO_CELSIUS(t) (long)(((long)t-2732 >= 0) ? \ | 44 | #define KELVIN_TO_CELSIUS(t) (long)(((long)t-2732 >= 0) ? \ |
diff --git a/include/linux/time.h b/include/linux/time.h index 203c2ad40d71..beebe3a02d43 100644 --- a/include/linux/time.h +++ b/include/linux/time.h | |||
| @@ -110,6 +110,19 @@ static inline bool timespec_valid_strict(const struct timespec *ts) | |||
| 110 | return true; | 110 | return true; |
| 111 | } | 111 | } |
| 112 | 112 | ||
| 113 | static inline bool timeval_valid(const struct timeval *tv) | ||
| 114 | { | ||
| 115 | /* Dates before 1970 are bogus */ | ||
| 116 | if (tv->tv_sec < 0) | ||
| 117 | return false; | ||
| 118 | |||
| 119 | /* Can't have more microseconds then a second */ | ||
| 120 | if (tv->tv_usec < 0 || tv->tv_usec >= USEC_PER_SEC) | ||
| 121 | return false; | ||
| 122 | |||
| 123 | return true; | ||
| 124 | } | ||
| 125 | |||
| 113 | extern struct timespec timespec_trunc(struct timespec t, unsigned gran); | 126 | extern struct timespec timespec_trunc(struct timespec t, unsigned gran); |
| 114 | 127 | ||
| 115 | #define CURRENT_TIME (current_kernel_time()) | 128 | #define CURRENT_TIME (current_kernel_time()) |
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index a219be961c0a..00048339c23e 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h | |||
| @@ -177,7 +177,6 @@ int write_cache_pages(struct address_space *mapping, | |||
| 177 | struct writeback_control *wbc, writepage_t writepage, | 177 | struct writeback_control *wbc, writepage_t writepage, |
| 178 | void *data); | 178 | void *data); |
| 179 | int do_writepages(struct address_space *mapping, struct writeback_control *wbc); | 179 | int do_writepages(struct address_space *mapping, struct writeback_control *wbc); |
| 180 | void set_page_dirty_balance(struct page *page); | ||
| 181 | void writeback_set_ratelimit(void); | 180 | void writeback_set_ratelimit(void); |
| 182 | void tag_pages_for_writeback(struct address_space *mapping, | 181 | void tag_pages_for_writeback(struct address_space *mapping, |
| 183 | pgoff_t start, pgoff_t end); | 182 | pgoff_t start, pgoff_t end); |
