aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2018-04-21 16:31:52 -0400
committerDavid S. Miller <davem@davemloft.net>2018-04-21 16:32:48 -0400
commite0ada51db907ed2db5d46ad7ff86a8b5df68e59b (patch)
tree858966cee69ad8a50e59c4e02dcbde6ba2916151 /include/linux
parent0638eb573cde5888c0886c7f35da604e5db209a6 (diff)
parent83beed7b2b26f232d782127792dd0cd4362fdc41 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts were simple overlapping changes in microchip driver. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/backing-dev.h1
-rw-r--r--include/linux/blk-mq.h2
-rw-r--r--include/linux/clk-provider.h23
-rw-r--r--include/linux/clk.h16
-rw-r--r--include/linux/clk/tegra.h1
-rw-r--r--include/linux/clk/ti.h2
-rw-r--r--include/linux/compat.h51
-rw-r--r--include/linux/fs.h8
-rw-r--r--include/linux/fsnotify_backend.h2
-rw-r--r--include/linux/hid.h9
-rw-r--r--include/linux/if_vlan.h7
-rw-r--r--include/linux/kexec.h81
-rw-r--r--include/linux/livepatch.h19
-rw-r--r--include/linux/lockref.h1
-rw-r--r--include/linux/mfd/cros_ec.h2
-rw-r--r--include/linux/mfd/cros_ec_commands.h3
-rw-r--r--include/linux/microchipphy.h8
-rw-r--r--include/linux/mod_devicetable.h1
-rw-r--r--include/linux/nfs_fs.h35
-rw-r--r--include/linux/nfs_xdr.h9
-rw-r--r--include/linux/platform_data/atmel_mxt_ts.h31
-rw-r--r--include/linux/platform_data/clk-da8xx-cfgchip.h21
-rw-r--r--include/linux/platform_data/clk-davinci-pll.h21
-rw-r--r--include/linux/sched.h6
-rw-r--r--include/linux/sha256.h30
-rw-r--r--include/linux/shrinker.h7
-rw-r--r--include/linux/sunrpc/clnt.h7
-rw-r--r--include/linux/sunrpc/xdr.h94
-rw-r--r--include/linux/sunrpc/xprt.h3
-rw-r--r--include/linux/syscalls.h42
-rw-r--r--include/linux/textsearch.h4
-rw-r--r--include/linux/thermal.h1
32 files changed, 424 insertions, 124 deletions
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h
index 09da0f124699..f6be4b0b6c18 100644
--- a/include/linux/backing-dev.h
+++ b/include/linux/backing-dev.h
@@ -28,6 +28,7 @@ void bdi_put(struct backing_dev_info *bdi);
28 28
29__printf(2, 3) 29__printf(2, 3)
30int bdi_register(struct backing_dev_info *bdi, const char *fmt, ...); 30int bdi_register(struct backing_dev_info *bdi, const char *fmt, ...);
31__printf(2, 0)
31int bdi_register_va(struct backing_dev_info *bdi, const char *fmt, 32int bdi_register_va(struct backing_dev_info *bdi, const char *fmt,
32 va_list args); 33 va_list args);
33int bdi_register_owner(struct backing_dev_info *bdi, struct device *owner); 34int bdi_register_owner(struct backing_dev_info *bdi, struct device *owner);
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h
index 8efcf49796a3..e3986f4b3461 100644
--- a/include/linux/blk-mq.h
+++ b/include/linux/blk-mq.h
@@ -183,7 +183,6 @@ enum {
183 BLK_MQ_S_STOPPED = 0, 183 BLK_MQ_S_STOPPED = 0,
184 BLK_MQ_S_TAG_ACTIVE = 1, 184 BLK_MQ_S_TAG_ACTIVE = 1,
185 BLK_MQ_S_SCHED_RESTART = 2, 185 BLK_MQ_S_SCHED_RESTART = 2,
186 BLK_MQ_S_START_ON_RUN = 3,
187 186
188 BLK_MQ_MAX_DEPTH = 10240, 187 BLK_MQ_MAX_DEPTH = 10240,
189 188
@@ -270,7 +269,6 @@ void blk_mq_unquiesce_queue(struct request_queue *q);
270void blk_mq_delay_run_hw_queue(struct blk_mq_hw_ctx *hctx, unsigned long msecs); 269void blk_mq_delay_run_hw_queue(struct blk_mq_hw_ctx *hctx, unsigned long msecs);
271bool blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async); 270bool blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async);
272void blk_mq_run_hw_queues(struct request_queue *q, bool async); 271void blk_mq_run_hw_queues(struct request_queue *q, bool async);
273void blk_mq_delay_queue(struct blk_mq_hw_ctx *hctx, unsigned long msecs);
274void blk_mq_tagset_busy_iter(struct blk_mq_tag_set *tagset, 272void blk_mq_tagset_busy_iter(struct blk_mq_tag_set *tagset,
275 busy_tag_iter_fn *fn, void *priv); 273 busy_tag_iter_fn *fn, void *priv);
276void blk_mq_freeze_queue(struct request_queue *q); 274void blk_mq_freeze_queue(struct request_queue *q);
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
index f711be6e8c44..210a890008f9 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
@@ -399,6 +399,7 @@ struct clk_divider {
399 spinlock_t *lock; 399 spinlock_t *lock;
400}; 400};
401 401
402#define clk_div_mask(width) ((1 << (width)) - 1)
402#define to_clk_divider(_hw) container_of(_hw, struct clk_divider, hw) 403#define to_clk_divider(_hw) container_of(_hw, struct clk_divider, hw)
403 404
404#define CLK_DIVIDER_ONE_BASED BIT(0) 405#define CLK_DIVIDER_ONE_BASED BIT(0)
@@ -419,6 +420,10 @@ long divider_round_rate_parent(struct clk_hw *hw, struct clk_hw *parent,
419 unsigned long rate, unsigned long *prate, 420 unsigned long rate, unsigned long *prate,
420 const struct clk_div_table *table, 421 const struct clk_div_table *table,
421 u8 width, unsigned long flags); 422 u8 width, unsigned long flags);
423long divider_ro_round_rate_parent(struct clk_hw *hw, struct clk_hw *parent,
424 unsigned long rate, unsigned long *prate,
425 const struct clk_div_table *table, u8 width,
426 unsigned long flags, unsigned int val);
422int divider_get_val(unsigned long rate, unsigned long parent_rate, 427int divider_get_val(unsigned long rate, unsigned long parent_rate,
423 const struct clk_div_table *table, u8 width, 428 const struct clk_div_table *table, u8 width,
424 unsigned long flags); 429 unsigned long flags);
@@ -449,8 +454,9 @@ void clk_hw_unregister_divider(struct clk_hw *hw);
449 * 454 *
450 * @hw: handle between common and hardware-specific interfaces 455 * @hw: handle between common and hardware-specific interfaces
451 * @reg: register controlling multiplexer 456 * @reg: register controlling multiplexer
457 * @table: array of register values corresponding to the parent index
452 * @shift: shift to multiplexer bit field 458 * @shift: shift to multiplexer bit field
453 * @width: width of mutliplexer bit field 459 * @mask: mask of mutliplexer bit field
454 * @flags: hardware-specific flags 460 * @flags: hardware-specific flags
455 * @lock: register lock 461 * @lock: register lock
456 * 462 *
@@ -510,6 +516,10 @@ struct clk_hw *clk_hw_register_mux_table(struct device *dev, const char *name,
510 void __iomem *reg, u8 shift, u32 mask, 516 void __iomem *reg, u8 shift, u32 mask,
511 u8 clk_mux_flags, u32 *table, spinlock_t *lock); 517 u8 clk_mux_flags, u32 *table, spinlock_t *lock);
512 518
519int clk_mux_val_to_index(struct clk_hw *hw, u32 *table, unsigned int flags,
520 unsigned int val);
521unsigned int clk_mux_index_to_val(u32 *table, unsigned int flags, u8 index);
522
513void clk_unregister_mux(struct clk *clk); 523void clk_unregister_mux(struct clk *clk);
514void clk_hw_unregister_mux(struct clk_hw *hw); 524void clk_hw_unregister_mux(struct clk_hw *hw);
515 525
@@ -774,6 +784,17 @@ static inline long divider_round_rate(struct clk_hw *hw, unsigned long rate,
774 rate, prate, table, width, flags); 784 rate, prate, table, width, flags);
775} 785}
776 786
787static inline long divider_ro_round_rate(struct clk_hw *hw, unsigned long rate,
788 unsigned long *prate,
789 const struct clk_div_table *table,
790 u8 width, unsigned long flags,
791 unsigned int val)
792{
793 return divider_ro_round_rate_parent(hw, clk_hw_get_parent(hw),
794 rate, prate, table, width, flags,
795 val);
796}
797
777/* 798/*
778 * FIXME clock api without lock protection 799 * FIXME clock api without lock protection
779 */ 800 */
diff --git a/include/linux/clk.h b/include/linux/clk.h
index 4c4ef9f34db3..0dbd0885b2c2 100644
--- a/include/linux/clk.h
+++ b/include/linux/clk.h
@@ -209,7 +209,7 @@ static inline int clk_prepare(struct clk *clk)
209 return 0; 209 return 0;
210} 210}
211 211
212static inline int clk_bulk_prepare(int num_clks, struct clk_bulk_data *clks) 212static inline int __must_check clk_bulk_prepare(int num_clks, struct clk_bulk_data *clks)
213{ 213{
214 might_sleep(); 214 might_sleep();
215 return 0; 215 return 0;
@@ -603,8 +603,8 @@ static inline struct clk *clk_get(struct device *dev, const char *id)
603 return NULL; 603 return NULL;
604} 604}
605 605
606static inline int clk_bulk_get(struct device *dev, int num_clks, 606static inline int __must_check clk_bulk_get(struct device *dev, int num_clks,
607 struct clk_bulk_data *clks) 607 struct clk_bulk_data *clks)
608{ 608{
609 return 0; 609 return 0;
610} 610}
@@ -614,8 +614,8 @@ static inline struct clk *devm_clk_get(struct device *dev, const char *id)
614 return NULL; 614 return NULL;
615} 615}
616 616
617static inline int devm_clk_bulk_get(struct device *dev, int num_clks, 617static inline int __must_check devm_clk_bulk_get(struct device *dev, int num_clks,
618 struct clk_bulk_data *clks) 618 struct clk_bulk_data *clks)
619{ 619{
620 return 0; 620 return 0;
621} 621}
@@ -645,7 +645,7 @@ static inline int clk_enable(struct clk *clk)
645 return 0; 645 return 0;
646} 646}
647 647
648static inline int clk_bulk_enable(int num_clks, struct clk_bulk_data *clks) 648static inline int __must_check clk_bulk_enable(int num_clks, struct clk_bulk_data *clks)
649{ 649{
650 return 0; 650 return 0;
651} 651}
@@ -719,8 +719,8 @@ static inline void clk_disable_unprepare(struct clk *clk)
719 clk_unprepare(clk); 719 clk_unprepare(clk);
720} 720}
721 721
722static inline int clk_bulk_prepare_enable(int num_clks, 722static inline int __must_check clk_bulk_prepare_enable(int num_clks,
723 struct clk_bulk_data *clks) 723 struct clk_bulk_data *clks)
724{ 724{
725 int ret; 725 int ret;
726 726
diff --git a/include/linux/clk/tegra.h b/include/linux/clk/tegra.h
index d23c9cf26993..afb9edfa5d58 100644
--- a/include/linux/clk/tegra.h
+++ b/include/linux/clk/tegra.h
@@ -128,5 +128,6 @@ extern void tegra210_sata_pll_hw_sequence_start(void);
128extern void tegra210_set_sata_pll_seq_sw(bool state); 128extern void tegra210_set_sata_pll_seq_sw(bool state);
129extern void tegra210_put_utmipll_in_iddq(void); 129extern void tegra210_put_utmipll_in_iddq(void);
130extern void tegra210_put_utmipll_out_iddq(void); 130extern void tegra210_put_utmipll_out_iddq(void);
131extern int tegra210_clk_handle_mbist_war(unsigned int id);
131 132
132#endif /* __LINUX_CLK_TEGRA_H_ */ 133#endif /* __LINUX_CLK_TEGRA_H_ */
diff --git a/include/linux/clk/ti.h b/include/linux/clk/ti.h
index 7e3bceee3489..a8faa38b1ed6 100644
--- a/include/linux/clk/ti.h
+++ b/include/linux/clk/ti.h
@@ -212,6 +212,7 @@ enum {
212 * struct ti_clk_ll_ops - low-level ops for clocks 212 * struct ti_clk_ll_ops - low-level ops for clocks
213 * @clk_readl: pointer to register read function 213 * @clk_readl: pointer to register read function
214 * @clk_writel: pointer to register write function 214 * @clk_writel: pointer to register write function
215 * @clk_rmw: pointer to register read-modify-write function
215 * @clkdm_clk_enable: pointer to clockdomain enable function 216 * @clkdm_clk_enable: pointer to clockdomain enable function
216 * @clkdm_clk_disable: pointer to clockdomain disable function 217 * @clkdm_clk_disable: pointer to clockdomain disable function
217 * @clkdm_lookup: pointer to clockdomain lookup function 218 * @clkdm_lookup: pointer to clockdomain lookup function
@@ -227,6 +228,7 @@ enum {
227struct ti_clk_ll_ops { 228struct ti_clk_ll_ops {
228 u32 (*clk_readl)(const struct clk_omap_reg *reg); 229 u32 (*clk_readl)(const struct clk_omap_reg *reg);
229 void (*clk_writel)(u32 val, const struct clk_omap_reg *reg); 230 void (*clk_writel)(u32 val, const struct clk_omap_reg *reg);
231 void (*clk_rmw)(u32 val, u32 mask, const struct clk_omap_reg *reg);
230 int (*clkdm_clk_enable)(struct clockdomain *clkdm, struct clk *clk); 232 int (*clkdm_clk_enable)(struct clockdomain *clkdm, struct clk *clk);
231 int (*clkdm_clk_disable)(struct clockdomain *clkdm, 233 int (*clkdm_clk_disable)(struct clockdomain *clkdm,
232 struct clk *clk); 234 struct clk *clk);
diff --git a/include/linux/compat.h b/include/linux/compat.h
index f188eab10570..081281ad5772 100644
--- a/include/linux/compat.h
+++ b/include/linux/compat.h
@@ -24,6 +24,17 @@
24#include <asm/siginfo.h> 24#include <asm/siginfo.h>
25#include <asm/signal.h> 25#include <asm/signal.h>
26 26
27#ifdef CONFIG_ARCH_HAS_SYSCALL_WRAPPER
28/*
29 * It may be useful for an architecture to override the definitions of the
30 * COMPAT_SYSCALL_DEFINE0 and COMPAT_SYSCALL_DEFINEx() macros, in particular
31 * to use a different calling convention for syscalls. To allow for that,
32 + the prototypes for the compat_sys_*() functions below will *not* be included
33 * if CONFIG_ARCH_HAS_SYSCALL_WRAPPER is enabled.
34 */
35#include <asm/syscall_wrapper.h>
36#endif /* CONFIG_ARCH_HAS_SYSCALL_WRAPPER */
37
27#ifndef COMPAT_USE_64BIT_TIME 38#ifndef COMPAT_USE_64BIT_TIME
28#define COMPAT_USE_64BIT_TIME 0 39#define COMPAT_USE_64BIT_TIME 0
29#endif 40#endif
@@ -32,10 +43,12 @@
32#define __SC_DELOUSE(t,v) ((__force t)(unsigned long)(v)) 43#define __SC_DELOUSE(t,v) ((__force t)(unsigned long)(v))
33#endif 44#endif
34 45
46#ifndef COMPAT_SYSCALL_DEFINE0
35#define COMPAT_SYSCALL_DEFINE0(name) \ 47#define COMPAT_SYSCALL_DEFINE0(name) \
36 asmlinkage long compat_sys_##name(void); \ 48 asmlinkage long compat_sys_##name(void); \
37 ALLOW_ERROR_INJECTION(compat_sys_##name, ERRNO); \ 49 ALLOW_ERROR_INJECTION(compat_sys_##name, ERRNO); \
38 asmlinkage long compat_sys_##name(void) 50 asmlinkage long compat_sys_##name(void)
51#endif /* COMPAT_SYSCALL_DEFINE0 */
39 52
40#define COMPAT_SYSCALL_DEFINE1(name, ...) \ 53#define COMPAT_SYSCALL_DEFINE1(name, ...) \
41 COMPAT_SYSCALL_DEFINEx(1, _##name, __VA_ARGS__) 54 COMPAT_SYSCALL_DEFINEx(1, _##name, __VA_ARGS__)
@@ -50,18 +63,25 @@
50#define COMPAT_SYSCALL_DEFINE6(name, ...) \ 63#define COMPAT_SYSCALL_DEFINE6(name, ...) \
51 COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__) 64 COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
52 65
53#define COMPAT_SYSCALL_DEFINEx(x, name, ...) \ 66/*
54 asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\ 67 * The asmlinkage stub is aliased to a function named __se_compat_sys_*() which
55 asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\ 68 * sign-extends 32-bit ints to longs whenever needed. The actual work is
56 __attribute__((alias(__stringify(compat_SyS##name)))); \ 69 * done within __do_compat_sys_*().
57 ALLOW_ERROR_INJECTION(compat_sys##name, ERRNO); \ 70 */
58 static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__));\ 71#ifndef COMPAT_SYSCALL_DEFINEx
59 asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__));\ 72#define COMPAT_SYSCALL_DEFINEx(x, name, ...) \
60 asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\ 73 asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \
61 { \ 74 asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
62 return C_SYSC##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__)); \ 75 __attribute__((alias(__stringify(__se_compat_sys##name)))); \
63 } \ 76 ALLOW_ERROR_INJECTION(compat_sys##name, ERRNO); \
64 static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__)) 77 static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
78 asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
79 asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
80 { \
81 return __do_compat_sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));\
82 } \
83 static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
84#endif /* COMPAT_SYSCALL_DEFINEx */
65 85
66#ifndef compat_user_stack_pointer 86#ifndef compat_user_stack_pointer
67#define compat_user_stack_pointer() current_user_stack_pointer() 87#define compat_user_stack_pointer() current_user_stack_pointer()
@@ -519,7 +539,12 @@ int __compat_save_altstack(compat_stack_t __user *, unsigned long);
519 * Please note that these prototypes here are only provided for information 539 * Please note that these prototypes here are only provided for information
520 * purposes, for static analysis, and for linking from the syscall table. 540 * purposes, for static analysis, and for linking from the syscall table.
521 * These functions should not be called elsewhere from kernel code. 541 * These functions should not be called elsewhere from kernel code.
542 *
543 * As the syscall calling convention may be different from the default
544 * for architectures overriding the syscall calling convention, do not
545 * include the prototypes if CONFIG_ARCH_HAS_SYSCALL_WRAPPER is enabled.
522 */ 546 */
547#ifndef CONFIG_ARCH_HAS_SYSCALL_WRAPPER
523asmlinkage long compat_sys_io_setup(unsigned nr_reqs, u32 __user *ctx32p); 548asmlinkage long compat_sys_io_setup(unsigned nr_reqs, u32 __user *ctx32p);
524asmlinkage long compat_sys_io_submit(compat_aio_context_t ctx_id, int nr, 549asmlinkage long compat_sys_io_submit(compat_aio_context_t ctx_id, int nr,
525 u32 __user *iocb); 550 u32 __user *iocb);
@@ -957,6 +982,8 @@ asmlinkage long compat_sys_stime(compat_time_t __user *tptr);
957/* obsolete: net/socket.c */ 982/* obsolete: net/socket.c */
958asmlinkage long compat_sys_socketcall(int call, u32 __user *args); 983asmlinkage long compat_sys_socketcall(int call, u32 __user *args);
959 984
985#endif /* CONFIG_ARCH_HAS_SYSCALL_WRAPPER */
986
960 987
961/* 988/*
962 * For most but not all architectures, "am I in a compat syscall?" and 989 * For most but not all architectures, "am I in a compat syscall?" and
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 92efaf1f8977..760d8da1b6c7 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1667,7 +1667,7 @@ typedef int (*filldir_t)(struct dir_context *, const char *, int, loff_t, u64,
1667 unsigned); 1667 unsigned);
1668 1668
1669struct dir_context { 1669struct dir_context {
1670 const filldir_t actor; 1670 filldir_t actor;
1671 loff_t pos; 1671 loff_t pos;
1672}; 1672};
1673 1673
@@ -2445,6 +2445,7 @@ extern int sync_blockdev(struct block_device *bdev);
2445extern void kill_bdev(struct block_device *); 2445extern void kill_bdev(struct block_device *);
2446extern struct super_block *freeze_bdev(struct block_device *); 2446extern struct super_block *freeze_bdev(struct block_device *);
2447extern void emergency_thaw_all(void); 2447extern void emergency_thaw_all(void);
2448extern void emergency_thaw_bdev(struct super_block *sb);
2448extern int thaw_bdev(struct block_device *bdev, struct super_block *sb); 2449extern int thaw_bdev(struct block_device *bdev, struct super_block *sb);
2449extern int fsync_bdev(struct block_device *); 2450extern int fsync_bdev(struct block_device *);
2450 2451
@@ -2470,6 +2471,11 @@ static inline int thaw_bdev(struct block_device *bdev, struct super_block *sb)
2470 return 0; 2471 return 0;
2471} 2472}
2472 2473
2474static inline int emergency_thaw_bdev(struct super_block *sb)
2475{
2476 return 0;
2477}
2478
2473static inline void iterate_bdevs(void (*f)(struct block_device *, void *), void *arg) 2479static inline void iterate_bdevs(void (*f)(struct block_device *, void *), void *arg)
2474{ 2480{
2475} 2481}
diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h
index 9f1edb92c97e..e0c95c9f1e29 100644
--- a/include/linux/fsnotify_backend.h
+++ b/include/linux/fsnotify_backend.h
@@ -248,7 +248,7 @@ struct fsnotify_mark {
248 /* Group this mark is for. Set on mark creation, stable until last ref 248 /* Group this mark is for. Set on mark creation, stable until last ref
249 * is dropped */ 249 * is dropped */
250 struct fsnotify_group *group; 250 struct fsnotify_group *group;
251 /* List of marks by group->i_fsnotify_marks. Also reused for queueing 251 /* List of marks by group->marks_list. Also reused for queueing
252 * mark into destroy_list when it's waiting for the end of SRCU period 252 * mark into destroy_list when it's waiting for the end of SRCU period
253 * before it can be freed. [group->mark_mutex] */ 253 * before it can be freed. [group->mark_mutex] */
254 struct list_head g_list; 254 struct list_head g_list;
diff --git a/include/linux/hid.h b/include/linux/hid.h
index 8da3e1f48195..26240a22978a 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -516,6 +516,12 @@ enum hid_type {
516 HID_TYPE_USBNONE 516 HID_TYPE_USBNONE
517}; 517};
518 518
519enum hid_battery_status {
520 HID_BATTERY_UNKNOWN = 0,
521 HID_BATTERY_QUERIED, /* Kernel explicitly queried battery strength */
522 HID_BATTERY_REPORTED, /* Device sent unsolicited battery strength report */
523};
524
519struct hid_driver; 525struct hid_driver;
520struct hid_ll_driver; 526struct hid_ll_driver;
521 527
@@ -558,7 +564,8 @@ struct hid_device { /* device report descriptor */
558 __s32 battery_max; 564 __s32 battery_max;
559 __s32 battery_report_type; 565 __s32 battery_report_type;
560 __s32 battery_report_id; 566 __s32 battery_report_id;
561 bool battery_reported; 567 enum hid_battery_status battery_status;
568 bool battery_avoid_query;
562#endif 569#endif
563 570
564 unsigned int status; /* see STAT flags above */ 571 unsigned int status; /* see STAT flags above */
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h
index d11f41d5269f..78a5a90b4267 100644
--- a/include/linux/if_vlan.h
+++ b/include/linux/if_vlan.h
@@ -663,7 +663,7 @@ static inline bool skb_vlan_tagged(const struct sk_buff *skb)
663 * Returns true if the skb is tagged with multiple vlan headers, regardless 663 * Returns true if the skb is tagged with multiple vlan headers, regardless
664 * of whether it is hardware accelerated or not. 664 * of whether it is hardware accelerated or not.
665 */ 665 */
666static inline bool skb_vlan_tagged_multi(const struct sk_buff *skb) 666static inline bool skb_vlan_tagged_multi(struct sk_buff *skb)
667{ 667{
668 __be16 protocol = skb->protocol; 668 __be16 protocol = skb->protocol;
669 669
@@ -673,6 +673,9 @@ static inline bool skb_vlan_tagged_multi(const struct sk_buff *skb)
673 if (likely(!eth_type_vlan(protocol))) 673 if (likely(!eth_type_vlan(protocol)))
674 return false; 674 return false;
675 675
676 if (unlikely(!pskb_may_pull(skb, VLAN_ETH_HLEN)))
677 return false;
678
676 veh = (struct vlan_ethhdr *)skb->data; 679 veh = (struct vlan_ethhdr *)skb->data;
677 protocol = veh->h_vlan_encapsulated_proto; 680 protocol = veh->h_vlan_encapsulated_proto;
678 } 681 }
@@ -690,7 +693,7 @@ static inline bool skb_vlan_tagged_multi(const struct sk_buff *skb)
690 * 693 *
691 * Returns features without unsafe ones if the skb has multiple tags. 694 * Returns features without unsafe ones if the skb has multiple tags.
692 */ 695 */
693static inline netdev_features_t vlan_features_check(const struct sk_buff *skb, 696static inline netdev_features_t vlan_features_check(struct sk_buff *skb,
694 netdev_features_t features) 697 netdev_features_t features)
695{ 698{
696 if (skb_vlan_tagged_multi(skb)) { 699 if (skb_vlan_tagged_multi(skb)) {
diff --git a/include/linux/kexec.h b/include/linux/kexec.h
index 0ebcbeb21056..9e4e638fb505 100644
--- a/include/linux/kexec.h
+++ b/include/linux/kexec.h
@@ -99,21 +99,25 @@ struct compat_kexec_segment {
99 99
100#ifdef CONFIG_KEXEC_FILE 100#ifdef CONFIG_KEXEC_FILE
101struct purgatory_info { 101struct purgatory_info {
102 /* Pointer to elf header of read only purgatory */ 102 /*
103 Elf_Ehdr *ehdr; 103 * Pointer to elf header at the beginning of kexec_purgatory.
104 104 * Note: kexec_purgatory is read only
105 /* Pointer to purgatory sechdrs which are modifiable */ 105 */
106 const Elf_Ehdr *ehdr;
107 /*
108 * Temporary, modifiable buffer for sechdrs used for relocation.
109 * This memory can be freed post image load.
110 */
106 Elf_Shdr *sechdrs; 111 Elf_Shdr *sechdrs;
107 /* 112 /*
108 * Temporary buffer location where purgatory is loaded and relocated 113 * Temporary, modifiable buffer for stripped purgatory used for
109 * This memory can be freed post image load 114 * relocation. This memory can be freed post image load.
110 */ 115 */
111 void *purgatory_buf; 116 void *purgatory_buf;
112
113 /* Address where purgatory is finally loaded and is executed from */
114 unsigned long purgatory_load_addr;
115}; 117};
116 118
119struct kimage;
120
117typedef int (kexec_probe_t)(const char *kernel_buf, unsigned long kernel_size); 121typedef int (kexec_probe_t)(const char *kernel_buf, unsigned long kernel_size);
118typedef void *(kexec_load_t)(struct kimage *image, char *kernel_buf, 122typedef void *(kexec_load_t)(struct kimage *image, char *kernel_buf,
119 unsigned long kernel_len, char *initrd, 123 unsigned long kernel_len, char *initrd,
@@ -135,6 +139,11 @@ struct kexec_file_ops {
135#endif 139#endif
136}; 140};
137 141
142extern const struct kexec_file_ops * const kexec_file_loaders[];
143
144int kexec_image_probe_default(struct kimage *image, void *buf,
145 unsigned long buf_len);
146
138/** 147/**
139 * struct kexec_buf - parameters for finding a place for a buffer in memory 148 * struct kexec_buf - parameters for finding a place for a buffer in memory
140 * @image: kexec image in which memory to search. 149 * @image: kexec image in which memory to search.
@@ -159,10 +168,44 @@ struct kexec_buf {
159 bool top_down; 168 bool top_down;
160}; 169};
161 170
171int kexec_load_purgatory(struct kimage *image, struct kexec_buf *kbuf);
172int kexec_purgatory_get_set_symbol(struct kimage *image, const char *name,
173 void *buf, unsigned int size,
174 bool get_value);
175void *kexec_purgatory_get_symbol_addr(struct kimage *image, const char *name);
176
177int __weak arch_kexec_apply_relocations_add(struct purgatory_info *pi,
178 Elf_Shdr *section,
179 const Elf_Shdr *relsec,
180 const Elf_Shdr *symtab);
181int __weak arch_kexec_apply_relocations(struct purgatory_info *pi,
182 Elf_Shdr *section,
183 const Elf_Shdr *relsec,
184 const Elf_Shdr *symtab);
185
162int __weak arch_kexec_walk_mem(struct kexec_buf *kbuf, 186int __weak arch_kexec_walk_mem(struct kexec_buf *kbuf,
163 int (*func)(struct resource *, void *)); 187 int (*func)(struct resource *, void *));
164extern int kexec_add_buffer(struct kexec_buf *kbuf); 188extern int kexec_add_buffer(struct kexec_buf *kbuf);
165int kexec_locate_mem_hole(struct kexec_buf *kbuf); 189int kexec_locate_mem_hole(struct kexec_buf *kbuf);
190
191/* Alignment required for elf header segment */
192#define ELF_CORE_HEADER_ALIGN 4096
193
194struct crash_mem_range {
195 u64 start, end;
196};
197
198struct crash_mem {
199 unsigned int max_nr_ranges;
200 unsigned int nr_ranges;
201 struct crash_mem_range ranges[0];
202};
203
204extern int crash_exclude_mem_range(struct crash_mem *mem,
205 unsigned long long mstart,
206 unsigned long long mend);
207extern int crash_prepare_elf64_headers(struct crash_mem *mem, int kernel_map,
208 void **addr, unsigned long *sz);
166#endif /* CONFIG_KEXEC_FILE */ 209#endif /* CONFIG_KEXEC_FILE */
167 210
168struct kimage { 211struct kimage {
@@ -209,7 +252,7 @@ struct kimage {
209 unsigned long cmdline_buf_len; 252 unsigned long cmdline_buf_len;
210 253
211 /* File operations provided by image loader */ 254 /* File operations provided by image loader */
212 struct kexec_file_ops *fops; 255 const struct kexec_file_ops *fops;
213 256
214 /* Image loader handling the kernel can store a pointer here */ 257 /* Image loader handling the kernel can store a pointer here */
215 void *image_loader_data; 258 void *image_loader_data;
@@ -226,14 +269,6 @@ extern void machine_kexec_cleanup(struct kimage *image);
226extern int kernel_kexec(void); 269extern int kernel_kexec(void);
227extern struct page *kimage_alloc_control_pages(struct kimage *image, 270extern struct page *kimage_alloc_control_pages(struct kimage *image,
228 unsigned int order); 271 unsigned int order);
229extern int kexec_load_purgatory(struct kimage *image, unsigned long min,
230 unsigned long max, int top_down,
231 unsigned long *load_addr);
232extern int kexec_purgatory_get_set_symbol(struct kimage *image,
233 const char *name, void *buf,
234 unsigned int size, bool get_value);
235extern void *kexec_purgatory_get_symbol_addr(struct kimage *image,
236 const char *name);
237extern void __crash_kexec(struct pt_regs *); 272extern void __crash_kexec(struct pt_regs *);
238extern void crash_kexec(struct pt_regs *); 273extern void crash_kexec(struct pt_regs *);
239int kexec_should_crash(struct task_struct *); 274int kexec_should_crash(struct task_struct *);
@@ -273,16 +308,6 @@ int crash_shrink_memory(unsigned long new_size);
273size_t crash_get_memory_size(void); 308size_t crash_get_memory_size(void);
274void crash_free_reserved_phys_range(unsigned long begin, unsigned long end); 309void crash_free_reserved_phys_range(unsigned long begin, unsigned long end);
275 310
276int __weak arch_kexec_kernel_image_probe(struct kimage *image, void *buf,
277 unsigned long buf_len);
278void * __weak arch_kexec_kernel_image_load(struct kimage *image);
279int __weak arch_kimage_file_post_load_cleanup(struct kimage *image);
280int __weak arch_kexec_kernel_verify_sig(struct kimage *image, void *buf,
281 unsigned long buf_len);
282int __weak arch_kexec_apply_relocations_add(const Elf_Ehdr *ehdr,
283 Elf_Shdr *sechdrs, unsigned int relsec);
284int __weak arch_kexec_apply_relocations(const Elf_Ehdr *ehdr, Elf_Shdr *sechdrs,
285 unsigned int relsec);
286void arch_kexec_protect_crashkres(void); 311void arch_kexec_protect_crashkres(void);
287void arch_kexec_unprotect_crashkres(void); 312void arch_kexec_unprotect_crashkres(void);
288 313
diff --git a/include/linux/livepatch.h b/include/linux/livepatch.h
index 4754f01c1abb..aec44b1d9582 100644
--- a/include/linux/livepatch.h
+++ b/include/linux/livepatch.h
@@ -186,13 +186,20 @@ static inline bool klp_have_reliable_stack(void)
186 IS_ENABLED(CONFIG_HAVE_RELIABLE_STACKTRACE); 186 IS_ENABLED(CONFIG_HAVE_RELIABLE_STACKTRACE);
187} 187}
188 188
189typedef int (*klp_shadow_ctor_t)(void *obj,
190 void *shadow_data,
191 void *ctor_data);
192typedef void (*klp_shadow_dtor_t)(void *obj, void *shadow_data);
193
189void *klp_shadow_get(void *obj, unsigned long id); 194void *klp_shadow_get(void *obj, unsigned long id);
190void *klp_shadow_alloc(void *obj, unsigned long id, void *data, 195void *klp_shadow_alloc(void *obj, unsigned long id,
191 size_t size, gfp_t gfp_flags); 196 size_t size, gfp_t gfp_flags,
192void *klp_shadow_get_or_alloc(void *obj, unsigned long id, void *data, 197 klp_shadow_ctor_t ctor, void *ctor_data);
193 size_t size, gfp_t gfp_flags); 198void *klp_shadow_get_or_alloc(void *obj, unsigned long id,
194void klp_shadow_free(void *obj, unsigned long id); 199 size_t size, gfp_t gfp_flags,
195void klp_shadow_free_all(unsigned long id); 200 klp_shadow_ctor_t ctor, void *ctor_data);
201void klp_shadow_free(void *obj, unsigned long id, klp_shadow_dtor_t dtor);
202void klp_shadow_free_all(unsigned long id, klp_shadow_dtor_t dtor);
196 203
197#else /* !CONFIG_LIVEPATCH */ 204#else /* !CONFIG_LIVEPATCH */
198 205
diff --git a/include/linux/lockref.h b/include/linux/lockref.h
index 2eac32095113..99f17cc8e163 100644
--- a/include/linux/lockref.h
+++ b/include/linux/lockref.h
@@ -37,6 +37,7 @@ struct lockref {
37extern void lockref_get(struct lockref *); 37extern void lockref_get(struct lockref *);
38extern int lockref_put_return(struct lockref *); 38extern int lockref_put_return(struct lockref *);
39extern int lockref_get_not_zero(struct lockref *); 39extern int lockref_get_not_zero(struct lockref *);
40extern int lockref_put_not_zero(struct lockref *);
40extern int lockref_get_or_lock(struct lockref *); 41extern int lockref_get_or_lock(struct lockref *);
41extern int lockref_put_or_lock(struct lockref *); 42extern int lockref_put_or_lock(struct lockref *);
42 43
diff --git a/include/linux/mfd/cros_ec.h b/include/linux/mfd/cros_ec.h
index c61535979b8f..2d4e23c9ea0a 100644
--- a/include/linux/mfd/cros_ec.h
+++ b/include/linux/mfd/cros_ec.h
@@ -183,6 +183,7 @@ struct cros_ec_debugfs;
183 * @ec_dev: cros_ec_device structure to talk to the physical device 183 * @ec_dev: cros_ec_device structure to talk to the physical device
184 * @dev: pointer to the platform device 184 * @dev: pointer to the platform device
185 * @debug_info: cros_ec_debugfs structure for debugging information 185 * @debug_info: cros_ec_debugfs structure for debugging information
186 * @has_kb_wake_angle: true if at least 2 accelerometer are connected to the EC.
186 * @cmd_offset: offset to apply for each command. 187 * @cmd_offset: offset to apply for each command.
187 */ 188 */
188struct cros_ec_dev { 189struct cros_ec_dev {
@@ -191,6 +192,7 @@ struct cros_ec_dev {
191 struct cros_ec_device *ec_dev; 192 struct cros_ec_device *ec_dev;
192 struct device *dev; 193 struct device *dev;
193 struct cros_ec_debugfs *debug_info; 194 struct cros_ec_debugfs *debug_info;
195 bool has_kb_wake_angle;
194 u16 cmd_offset; 196 u16 cmd_offset;
195 u32 features[2]; 197 u32 features[2];
196}; 198};
diff --git a/include/linux/mfd/cros_ec_commands.h b/include/linux/mfd/cros_ec_commands.h
index 2b96e630e3b6..f2edd9969b40 100644
--- a/include/linux/mfd/cros_ec_commands.h
+++ b/include/linux/mfd/cros_ec_commands.h
@@ -2948,6 +2948,9 @@ struct ec_response_usb_pd_control_v1 {
2948 2948
2949#define EC_CMD_USB_PD_PORTS 0x102 2949#define EC_CMD_USB_PD_PORTS 0x102
2950 2950
2951/* Maximum number of PD ports on a device, num_ports will be <= this */
2952#define EC_USB_PD_MAX_PORTS 8
2953
2951struct ec_response_usb_pd_ports { 2954struct ec_response_usb_pd_ports {
2952 uint8_t num_ports; 2955 uint8_t num_ports;
2953} __packed; 2956} __packed;
diff --git a/include/linux/microchipphy.h b/include/linux/microchipphy.h
index 8e4015e7f8d3..8c40128af240 100644
--- a/include/linux/microchipphy.h
+++ b/include/linux/microchipphy.h
@@ -73,4 +73,12 @@
73/* Registers specific to the LAN7800/LAN7850 embedded phy */ 73/* Registers specific to the LAN7800/LAN7850 embedded phy */
74#define LAN78XX_PHY_LED_MODE_SELECT (0x1D) 74#define LAN78XX_PHY_LED_MODE_SELECT (0x1D)
75 75
76/* DSP registers */
77#define PHY_ARDENNES_MMD_DEV_3_PHY_CFG (0x806A)
78#define PHY_ARDENNES_MMD_DEV_3_PHY_CFG_ZD_DLY_EN_ (0x2000)
79#define LAN88XX_EXT_PAGE_ACCESS_TR (0x52B5)
80#define LAN88XX_EXT_PAGE_TR_CR 16
81#define LAN88XX_EXT_PAGE_TR_LOW_DATA 17
82#define LAN88XX_EXT_PAGE_TR_HIGH_DATA 18
83
76#endif /* _MICROCHIPPHY_H */ 84#endif /* _MICROCHIPPHY_H */
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
index 48fb2b43c35a..7d361be2e24f 100644
--- a/include/linux/mod_devicetable.h
+++ b/include/linux/mod_devicetable.h
@@ -502,6 +502,7 @@ enum dmi_field {
502 DMI_CHASSIS_SERIAL, 502 DMI_CHASSIS_SERIAL,
503 DMI_CHASSIS_ASSET_TAG, 503 DMI_CHASSIS_ASSET_TAG,
504 DMI_STRING_MAX, 504 DMI_STRING_MAX,
505 DMI_OEM_STRING, /* special case - will not be in dmi_ident */
505}; 506};
506 507
507struct dmi_strmatch { 508struct dmi_strmatch {
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index 38187c68063d..2f129bbfaae8 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -198,14 +198,24 @@ struct nfs_inode {
198/* 198/*
199 * Cache validity bit flags 199 * Cache validity bit flags
200 */ 200 */
201#define NFS_INO_INVALID_ATTR 0x0001 /* cached attrs are invalid */ 201#define NFS_INO_INVALID_DATA BIT(1) /* cached data is invalid */
202#define NFS_INO_INVALID_DATA 0x0002 /* cached data is invalid */ 202#define NFS_INO_INVALID_ATIME BIT(2) /* cached atime is invalid */
203#define NFS_INO_INVALID_ATIME 0x0004 /* cached atime is invalid */ 203#define NFS_INO_INVALID_ACCESS BIT(3) /* cached access cred invalid */
204#define NFS_INO_INVALID_ACCESS 0x0008 /* cached access cred invalid */ 204#define NFS_INO_INVALID_ACL BIT(4) /* cached acls are invalid */
205#define NFS_INO_INVALID_ACL 0x0010 /* cached acls are invalid */ 205#define NFS_INO_REVAL_PAGECACHE BIT(5) /* must revalidate pagecache */
206#define NFS_INO_REVAL_PAGECACHE 0x0020 /* must revalidate pagecache */ 206#define NFS_INO_REVAL_FORCED BIT(6) /* force revalidation ignoring a delegation */
207#define NFS_INO_REVAL_FORCED 0x0040 /* force revalidation ignoring a delegation */ 207#define NFS_INO_INVALID_LABEL BIT(7) /* cached label is invalid */
208#define NFS_INO_INVALID_LABEL 0x0080 /* cached label is invalid */ 208#define NFS_INO_INVALID_CHANGE BIT(8) /* cached change is invalid */
209#define NFS_INO_INVALID_CTIME BIT(9) /* cached ctime is invalid */
210#define NFS_INO_INVALID_MTIME BIT(10) /* cached mtime is invalid */
211#define NFS_INO_INVALID_SIZE BIT(11) /* cached size is invalid */
212#define NFS_INO_INVALID_OTHER BIT(12) /* other attrs are invalid */
213
214#define NFS_INO_INVALID_ATTR (NFS_INO_INVALID_CHANGE \
215 | NFS_INO_INVALID_CTIME \
216 | NFS_INO_INVALID_MTIME \
217 | NFS_INO_INVALID_SIZE \
218 | NFS_INO_INVALID_OTHER) /* inode metadata is invalid */
209 219
210/* 220/*
211 * Bit offsets in flags field 221 * Bit offsets in flags field
@@ -292,10 +302,11 @@ static inline void nfs_mark_for_revalidate(struct inode *inode)
292 struct nfs_inode *nfsi = NFS_I(inode); 302 struct nfs_inode *nfsi = NFS_I(inode);
293 303
294 spin_lock(&inode->i_lock); 304 spin_lock(&inode->i_lock);
295 nfsi->cache_validity |= NFS_INO_INVALID_ATTR | 305 nfsi->cache_validity |= NFS_INO_REVAL_PAGECACHE
296 NFS_INO_REVAL_PAGECACHE | 306 | NFS_INO_INVALID_ACCESS
297 NFS_INO_INVALID_ACCESS | 307 | NFS_INO_INVALID_ACL
298 NFS_INO_INVALID_ACL; 308 | NFS_INO_INVALID_CHANGE
309 | NFS_INO_INVALID_CTIME;
299 if (S_ISDIR(inode->i_mode)) 310 if (S_ISDIR(inode->i_mode))
300 nfsi->cache_validity |= NFS_INO_INVALID_DATA; 311 nfsi->cache_validity |= NFS_INO_INVALID_DATA;
301 spin_unlock(&inode->i_lock); 312 spin_unlock(&inode->i_lock);
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
index 6959968dc36a..34d28564ecf3 100644
--- a/include/linux/nfs_xdr.h
+++ b/include/linux/nfs_xdr.h
@@ -1590,11 +1590,13 @@ struct nfs_rpc_ops {
1590 unsigned int); 1590 unsigned int);
1591 int (*create) (struct inode *, struct dentry *, 1591 int (*create) (struct inode *, struct dentry *,
1592 struct iattr *, int); 1592 struct iattr *, int);
1593 int (*remove) (struct inode *, const struct qstr *); 1593 int (*remove) (struct inode *, struct dentry *);
1594 void (*unlink_setup) (struct rpc_message *, struct inode *dir); 1594 void (*unlink_setup) (struct rpc_message *, struct dentry *);
1595 void (*unlink_rpc_prepare) (struct rpc_task *, struct nfs_unlinkdata *); 1595 void (*unlink_rpc_prepare) (struct rpc_task *, struct nfs_unlinkdata *);
1596 int (*unlink_done) (struct rpc_task *, struct inode *); 1596 int (*unlink_done) (struct rpc_task *, struct inode *);
1597 void (*rename_setup) (struct rpc_message *msg, struct inode *dir); 1597 void (*rename_setup) (struct rpc_message *msg,
1598 struct dentry *old_dentry,
1599 struct dentry *new_dentry);
1598 void (*rename_rpc_prepare)(struct rpc_task *task, struct nfs_renamedata *); 1600 void (*rename_rpc_prepare)(struct rpc_task *task, struct nfs_renamedata *);
1599 int (*rename_done) (struct rpc_task *task, struct inode *old_dir, struct inode *new_dir); 1601 int (*rename_done) (struct rpc_task *task, struct inode *old_dir, struct inode *new_dir);
1600 int (*link) (struct inode *, struct inode *, const struct qstr *); 1602 int (*link) (struct inode *, struct inode *, const struct qstr *);
@@ -1633,7 +1635,6 @@ struct nfs_rpc_ops {
1633 struct iattr *iattr, 1635 struct iattr *iattr,
1634 int *); 1636 int *);
1635 int (*have_delegation)(struct inode *, fmode_t); 1637 int (*have_delegation)(struct inode *, fmode_t);
1636 int (*return_delegation)(struct inode *);
1637 struct nfs_client *(*alloc_client) (const struct nfs_client_initdata *); 1638 struct nfs_client *(*alloc_client) (const struct nfs_client_initdata *);
1638 struct nfs_client *(*init_client) (struct nfs_client *, 1639 struct nfs_client *(*init_client) (struct nfs_client *,
1639 const struct nfs_client_initdata *); 1640 const struct nfs_client_initdata *);
diff --git a/include/linux/platform_data/atmel_mxt_ts.h b/include/linux/platform_data/atmel_mxt_ts.h
deleted file mode 100644
index 695035a8d7fb..000000000000
--- a/include/linux/platform_data/atmel_mxt_ts.h
+++ /dev/null
@@ -1,31 +0,0 @@
1/*
2 * Atmel maXTouch Touchscreen driver
3 *
4 * Copyright (C) 2010 Samsung Electronics Co.Ltd
5 * Author: Joonyoung Shim <jy0922.shim@samsung.com>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2 of the License, or (at your
10 * option) any later version.
11 */
12
13#ifndef __LINUX_PLATFORM_DATA_ATMEL_MXT_TS_H
14#define __LINUX_PLATFORM_DATA_ATMEL_MXT_TS_H
15
16#include <linux/types.h>
17
18enum mxt_suspend_mode {
19 MXT_SUSPEND_DEEP_SLEEP = 0,
20 MXT_SUSPEND_T9_CTRL = 1,
21};
22
23/* The platform data for the Atmel maXTouch touchscreen driver */
24struct mxt_platform_data {
25 unsigned long irqflags;
26 u8 t19_num_keys;
27 const unsigned int *t19_keymap;
28 enum mxt_suspend_mode suspend_mode;
29};
30
31#endif /* __LINUX_PLATFORM_DATA_ATMEL_MXT_TS_H */
diff --git a/include/linux/platform_data/clk-da8xx-cfgchip.h b/include/linux/platform_data/clk-da8xx-cfgchip.h
new file mode 100644
index 000000000000..de0f77d38669
--- /dev/null
+++ b/include/linux/platform_data/clk-da8xx-cfgchip.h
@@ -0,0 +1,21 @@
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * clk-da8xx-cfgchip - TI DaVinci DA8xx CFGCHIP clock driver
4 *
5 * Copyright (C) 2018 David Lechner <david@lechnology.com>
6 */
7
8#ifndef __LINUX_PLATFORM_DATA_CLK_DA8XX_CFGCHIP_H__
9#define __LINUX_PLATFORM_DATA_CLK_DA8XX_CFGCHIP_H__
10
11#include <linux/regmap.h>
12
13/**
14 * da8xx_cfgchip_clk_platform_data
15 * @cfgchip: CFGCHIP syscon regmap
16 */
17struct da8xx_cfgchip_clk_platform_data {
18 struct regmap *cfgchip;
19};
20
21#endif /* __LINUX_PLATFORM_DATA_CLK_DA8XX_CFGCHIP_H__ */
diff --git a/include/linux/platform_data/clk-davinci-pll.h b/include/linux/platform_data/clk-davinci-pll.h
new file mode 100644
index 000000000000..e55dab1d578b
--- /dev/null
+++ b/include/linux/platform_data/clk-davinci-pll.h
@@ -0,0 +1,21 @@
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * PLL clock driver for TI Davinci SoCs
4 *
5 * Copyright (C) 2018 David Lechner <david@lechnology.com>
6 */
7
8#ifndef __LINUX_PLATFORM_DATA_CLK_DAVINCI_PLL_H__
9#define __LINUX_PLATFORM_DATA_CLK_DAVINCI_PLL_H__
10
11#include <linux/regmap.h>
12
13/**
14 * davinci_pll_platform_data
15 * @cfgchip: CFGCHIP syscon regmap
16 */
17struct davinci_pll_platform_data {
18 struct regmap *cfgchip;
19};
20
21#endif /* __LINUX_PLATFORM_DATA_CLK_DAVINCI_PLL_H__ */
diff --git a/include/linux/sched.h b/include/linux/sched.h
index f228c6033832..b3d697f3b573 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -300,7 +300,7 @@ struct util_est {
300 unsigned int enqueued; 300 unsigned int enqueued;
301 unsigned int ewma; 301 unsigned int ewma;
302#define UTIL_EST_WEIGHT_SHIFT 2 302#define UTIL_EST_WEIGHT_SHIFT 2
303}; 303} __attribute__((__aligned__(sizeof(u64))));
304 304
305/* 305/*
306 * The load_avg/util_avg accumulates an infinite geometric series 306 * The load_avg/util_avg accumulates an infinite geometric series
@@ -364,7 +364,7 @@ struct sched_avg {
364 unsigned long runnable_load_avg; 364 unsigned long runnable_load_avg;
365 unsigned long util_avg; 365 unsigned long util_avg;
366 struct util_est util_est; 366 struct util_est util_est;
367}; 367} ____cacheline_aligned;
368 368
369struct sched_statistics { 369struct sched_statistics {
370#ifdef CONFIG_SCHEDSTATS 370#ifdef CONFIG_SCHEDSTATS
@@ -435,7 +435,7 @@ struct sched_entity {
435 * Put into separate cache line so it does not 435 * Put into separate cache line so it does not
436 * collide with read-mostly values above. 436 * collide with read-mostly values above.
437 */ 437 */
438 struct sched_avg avg ____cacheline_aligned_in_smp; 438 struct sched_avg avg;
439#endif 439#endif
440}; 440};
441 441
diff --git a/include/linux/sha256.h b/include/linux/sha256.h
new file mode 100644
index 000000000000..244fe01a65fb
--- /dev/null
+++ b/include/linux/sha256.h
@@ -0,0 +1,30 @@
1/*
2 * Copyright (C) 2014 Red Hat Inc.
3 *
4 * Author: Vivek Goyal <vgoyal@redhat.com>
5 *
6 * This source code is licensed under the GNU General Public License,
7 * Version 2. See the file COPYING for more details.
8 */
9
10#ifndef SHA256_H
11#define SHA256_H
12
13#include <linux/types.h>
14#include <crypto/sha.h>
15
16/*
17 * Stand-alone implementation of the SHA256 algorithm. It is designed to
18 * have as little dependencies as possible so it can be used in the
19 * kexec_file purgatory. In other cases you should use the implementation in
20 * crypto/.
21 *
22 * For details see lib/sha256.c
23 */
24
25extern int sha256_init(struct sha256_state *sctx);
26extern int sha256_update(struct sha256_state *sctx, const u8 *input,
27 unsigned int length);
28extern int sha256_final(struct sha256_state *sctx, u8 *hash);
29
30#endif /* SHA256_H */
diff --git a/include/linux/shrinker.h b/include/linux/shrinker.h
index 388ff2936a87..6794490f25b2 100644
--- a/include/linux/shrinker.h
+++ b/include/linux/shrinker.h
@@ -75,6 +75,9 @@ struct shrinker {
75#define SHRINKER_NUMA_AWARE (1 << 0) 75#define SHRINKER_NUMA_AWARE (1 << 0)
76#define SHRINKER_MEMCG_AWARE (1 << 1) 76#define SHRINKER_MEMCG_AWARE (1 << 1)
77 77
78extern int register_shrinker(struct shrinker *); 78extern int prealloc_shrinker(struct shrinker *shrinker);
79extern void unregister_shrinker(struct shrinker *); 79extern void register_shrinker_prepared(struct shrinker *shrinker);
80extern int register_shrinker(struct shrinker *shrinker);
81extern void unregister_shrinker(struct shrinker *shrinker);
82extern void free_prealloced_shrinker(struct shrinker *shrinker);
80#endif 83#endif
diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h
index ed761f751ecb..9b11b6a0978c 100644
--- a/include/linux/sunrpc/clnt.h
+++ b/include/linux/sunrpc/clnt.h
@@ -217,5 +217,12 @@ void rpc_clnt_xprt_switch_add_xprt(struct rpc_clnt *, struct rpc_xprt *);
217bool rpc_clnt_xprt_switch_has_addr(struct rpc_clnt *clnt, 217bool rpc_clnt_xprt_switch_has_addr(struct rpc_clnt *clnt,
218 const struct sockaddr *sap); 218 const struct sockaddr *sap);
219void rpc_cleanup_clids(void); 219void rpc_cleanup_clids(void);
220
221static inline int rpc_reply_expected(struct rpc_task *task)
222{
223 return (task->tk_msg.rpc_proc != NULL) &&
224 (task->tk_msg.rpc_proc->p_decode != NULL);
225}
226
220#endif /* __KERNEL__ */ 227#endif /* __KERNEL__ */
221#endif /* _LINUX_SUNRPC_CLNT_H */ 228#endif /* _LINUX_SUNRPC_CLNT_H */
diff --git a/include/linux/sunrpc/xdr.h b/include/linux/sunrpc/xdr.h
index d950223c64b1..2bd68177a442 100644
--- a/include/linux/sunrpc/xdr.h
+++ b/include/linux/sunrpc/xdr.h
@@ -253,6 +253,12 @@ xdr_stream_remaining(const struct xdr_stream *xdr)
253 return xdr->nwords << 2; 253 return xdr->nwords << 2;
254} 254}
255 255
256ssize_t xdr_stream_decode_opaque(struct xdr_stream *xdr, void *ptr,
257 size_t size);
258ssize_t xdr_stream_decode_opaque_dup(struct xdr_stream *xdr, void **ptr,
259 size_t maxlen, gfp_t gfp_flags);
260ssize_t xdr_stream_decode_string(struct xdr_stream *xdr, char *str,
261 size_t size);
256ssize_t xdr_stream_decode_string_dup(struct xdr_stream *xdr, char **str, 262ssize_t xdr_stream_decode_string_dup(struct xdr_stream *xdr, char **str,
257 size_t maxlen, gfp_t gfp_flags); 263 size_t maxlen, gfp_t gfp_flags);
258/** 264/**
@@ -313,6 +319,31 @@ xdr_stream_encode_u64(struct xdr_stream *xdr, __u64 n)
313} 319}
314 320
315/** 321/**
322 * xdr_stream_encode_opaque_inline - Encode opaque xdr data
323 * @xdr: pointer to xdr_stream
324 * @ptr: pointer to void pointer
325 * @len: size of object
326 *
327 * Return values:
328 * On success, returns length in bytes of XDR buffer consumed
329 * %-EMSGSIZE on XDR buffer overflow
330 */
331static inline ssize_t
332xdr_stream_encode_opaque_inline(struct xdr_stream *xdr, void **ptr, size_t len)
333{
334 size_t count = sizeof(__u32) + xdr_align_size(len);
335 __be32 *p = xdr_reserve_space(xdr, count);
336
337 if (unlikely(!p)) {
338 *ptr = NULL;
339 return -EMSGSIZE;
340 }
341 xdr_encode_opaque(p, NULL, len);
342 *ptr = ++p;
343 return count;
344}
345
346/**
316 * xdr_stream_encode_opaque_fixed - Encode fixed length opaque xdr data 347 * xdr_stream_encode_opaque_fixed - Encode fixed length opaque xdr data
317 * @xdr: pointer to xdr_stream 348 * @xdr: pointer to xdr_stream
318 * @ptr: pointer to opaque data object 349 * @ptr: pointer to opaque data object
@@ -356,6 +387,31 @@ xdr_stream_encode_opaque(struct xdr_stream *xdr, const void *ptr, size_t len)
356} 387}
357 388
358/** 389/**
390 * xdr_stream_encode_uint32_array - Encode variable length array of integers
391 * @xdr: pointer to xdr_stream
392 * @array: array of integers
393 * @array_size: number of elements in @array
394 *
395 * Return values:
396 * On success, returns length in bytes of XDR buffer consumed
397 * %-EMSGSIZE on XDR buffer overflow
398 */
399static inline ssize_t
400xdr_stream_encode_uint32_array(struct xdr_stream *xdr,
401 const __u32 *array, size_t array_size)
402{
403 ssize_t ret = (array_size+1) * sizeof(__u32);
404 __be32 *p = xdr_reserve_space(xdr, ret);
405
406 if (unlikely(!p))
407 return -EMSGSIZE;
408 *p++ = cpu_to_be32(array_size);
409 for (; array_size > 0; p++, array++, array_size--)
410 *p = cpu_to_be32p(array);
411 return ret;
412}
413
414/**
359 * xdr_stream_decode_u32 - Decode a 32-bit integer 415 * xdr_stream_decode_u32 - Decode a 32-bit integer
360 * @xdr: pointer to xdr_stream 416 * @xdr: pointer to xdr_stream
361 * @ptr: location to store integer 417 * @ptr: location to store integer
@@ -432,6 +488,44 @@ xdr_stream_decode_opaque_inline(struct xdr_stream *xdr, void **ptr, size_t maxle
432 } 488 }
433 return len; 489 return len;
434} 490}
491
492/**
493 * xdr_stream_decode_uint32_array - Decode variable length array of integers
494 * @xdr: pointer to xdr_stream
495 * @array: location to store the integer array or NULL
496 * @array_size: number of elements to store
497 *
498 * Return values:
499 * On success, returns number of elements stored in @array
500 * %-EBADMSG on XDR buffer overflow
501 * %-EMSGSIZE if the size of the array exceeds @array_size
502 */
503static inline ssize_t
504xdr_stream_decode_uint32_array(struct xdr_stream *xdr,
505 __u32 *array, size_t array_size)
506{
507 __be32 *p;
508 __u32 len;
509 ssize_t retval;
510
511 if (unlikely(xdr_stream_decode_u32(xdr, &len) < 0))
512 return -EBADMSG;
513 p = xdr_inline_decode(xdr, len * sizeof(*p));
514 if (unlikely(!p))
515 return -EBADMSG;
516 if (array == NULL)
517 return len;
518 if (len <= array_size) {
519 if (len < array_size)
520 memset(array+len, 0, (array_size-len)*sizeof(*array));
521 array_size = len;
522 retval = len;
523 } else
524 retval = -EMSGSIZE;
525 for (; array_size > 0; p++, array++, array_size--)
526 *array = be32_to_cpup(p);
527 return retval;
528}
435#endif /* __KERNEL__ */ 529#endif /* __KERNEL__ */
436 530
437#endif /* _SUNRPC_XDR_H_ */ 531#endif /* _SUNRPC_XDR_H_ */
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h
index 7fad83881ce1..5fea0fb420df 100644
--- a/include/linux/sunrpc/xprt.h
+++ b/include/linux/sunrpc/xprt.h
@@ -197,7 +197,7 @@ struct rpc_xprt {
197 struct list_head free; /* free slots */ 197 struct list_head free; /* free slots */
198 unsigned int max_reqs; /* max number of slots */ 198 unsigned int max_reqs; /* max number of slots */
199 unsigned int min_reqs; /* min number of slots */ 199 unsigned int min_reqs; /* min number of slots */
200 atomic_t num_reqs; /* total slots */ 200 unsigned int num_reqs; /* total slots */
201 unsigned long state; /* transport state */ 201 unsigned long state; /* transport state */
202 unsigned char resvport : 1; /* use a reserved port */ 202 unsigned char resvport : 1; /* use a reserved port */
203 atomic_t swapper; /* we're swapping over this 203 atomic_t swapper; /* we're swapping over this
@@ -373,6 +373,7 @@ void xprt_wait_for_buffer_space(struct rpc_task *task, rpc_action action);
373void xprt_write_space(struct rpc_xprt *xprt); 373void xprt_write_space(struct rpc_xprt *xprt);
374void xprt_adjust_cwnd(struct rpc_xprt *xprt, struct rpc_task *task, int result); 374void xprt_adjust_cwnd(struct rpc_xprt *xprt, struct rpc_task *task, int result);
375struct rpc_rqst * xprt_lookup_rqst(struct rpc_xprt *xprt, __be32 xid); 375struct rpc_rqst * xprt_lookup_rqst(struct rpc_xprt *xprt, __be32 xid);
376void xprt_update_rtt(struct rpc_task *task);
376void xprt_complete_rqst(struct rpc_task *task, int copied); 377void xprt_complete_rqst(struct rpc_task *task, int copied);
377void xprt_pin_rqst(struct rpc_rqst *req); 378void xprt_pin_rqst(struct rpc_rqst *req);
378void xprt_unpin_rqst(struct rpc_rqst *req); 379void xprt_unpin_rqst(struct rpc_rqst *req);
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index b961184f597a..70fcda1a9049 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -81,6 +81,17 @@ union bpf_attr;
81#include <linux/key.h> 81#include <linux/key.h>
82#include <trace/syscall.h> 82#include <trace/syscall.h>
83 83
84#ifdef CONFIG_ARCH_HAS_SYSCALL_WRAPPER
85/*
86 * It may be useful for an architecture to override the definitions of the
87 * SYSCALL_DEFINE0() and __SYSCALL_DEFINEx() macros, in particular to use a
88 * different calling convention for syscalls. To allow for that, the prototypes
89 * for the sys_*() functions below will *not* be included if
90 * CONFIG_ARCH_HAS_SYSCALL_WRAPPER is enabled.
91 */
92#include <asm/syscall_wrapper.h>
93#endif /* CONFIG_ARCH_HAS_SYSCALL_WRAPPER */
94
84/* 95/*
85 * __MAP - apply a macro to syscall arguments 96 * __MAP - apply a macro to syscall arguments
86 * __MAP(n, m, t1, a1, t2, a2, ..., tn, an) will expand to 97 * __MAP(n, m, t1, a1, t2, a2, ..., tn, an) will expand to
@@ -91,7 +102,7 @@ union bpf_attr;
91 * for SYSCALL_DEFINE<n>/COMPAT_SYSCALL_DEFINE<n> 102 * for SYSCALL_DEFINE<n>/COMPAT_SYSCALL_DEFINE<n>
92 */ 103 */
93#define __MAP0(m,...) 104#define __MAP0(m,...)
94#define __MAP1(m,t,a) m(t,a) 105#define __MAP1(m,t,a,...) m(t,a)
95#define __MAP2(m,t,a,...) m(t,a), __MAP1(m,__VA_ARGS__) 106#define __MAP2(m,t,a,...) m(t,a), __MAP1(m,__VA_ARGS__)
96#define __MAP3(m,t,a,...) m(t,a), __MAP2(m,__VA_ARGS__) 107#define __MAP3(m,t,a,...) m(t,a), __MAP2(m,__VA_ARGS__)
97#define __MAP4(m,t,a,...) m(t,a), __MAP3(m,__VA_ARGS__) 108#define __MAP4(m,t,a,...) m(t,a), __MAP3(m,__VA_ARGS__)
@@ -189,11 +200,13 @@ static inline int is_syscall_trace_event(struct trace_event_call *tp_event)
189} 200}
190#endif 201#endif
191 202
203#ifndef SYSCALL_DEFINE0
192#define SYSCALL_DEFINE0(sname) \ 204#define SYSCALL_DEFINE0(sname) \
193 SYSCALL_METADATA(_##sname, 0); \ 205 SYSCALL_METADATA(_##sname, 0); \
194 asmlinkage long sys_##sname(void); \ 206 asmlinkage long sys_##sname(void); \
195 ALLOW_ERROR_INJECTION(sys_##sname, ERRNO); \ 207 ALLOW_ERROR_INJECTION(sys_##sname, ERRNO); \
196 asmlinkage long sys_##sname(void) 208 asmlinkage long sys_##sname(void)
209#endif /* SYSCALL_DEFINE0 */
197 210
198#define SYSCALL_DEFINE1(name, ...) SYSCALL_DEFINEx(1, _##name, __VA_ARGS__) 211#define SYSCALL_DEFINE1(name, ...) SYSCALL_DEFINEx(1, _##name, __VA_ARGS__)
199#define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__) 212#define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
@@ -209,20 +222,28 @@ static inline int is_syscall_trace_event(struct trace_event_call *tp_event)
209 __SYSCALL_DEFINEx(x, sname, __VA_ARGS__) 222 __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
210 223
211#define __PROTECT(...) asmlinkage_protect(__VA_ARGS__) 224#define __PROTECT(...) asmlinkage_protect(__VA_ARGS__)
225
226/*
227 * The asmlinkage stub is aliased to a function named __se_sys_*() which
228 * sign-extends 32-bit ints to longs whenever needed. The actual work is
229 * done within __do_sys_*().
230 */
231#ifndef __SYSCALL_DEFINEx
212#define __SYSCALL_DEFINEx(x, name, ...) \ 232#define __SYSCALL_DEFINEx(x, name, ...) \
213 asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \ 233 asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
214 __attribute__((alias(__stringify(SyS##name)))); \ 234 __attribute__((alias(__stringify(__se_sys##name)))); \
215 ALLOW_ERROR_INJECTION(sys##name, ERRNO); \ 235 ALLOW_ERROR_INJECTION(sys##name, ERRNO); \
216 static inline long SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \ 236 static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
217 asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \ 237 asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
218 asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \ 238 asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
219 { \ 239 { \
220 long ret = SYSC##name(__MAP(x,__SC_CAST,__VA_ARGS__)); \ 240 long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\
221 __MAP(x,__SC_TEST,__VA_ARGS__); \ 241 __MAP(x,__SC_TEST,__VA_ARGS__); \
222 __PROTECT(x, ret,__MAP(x,__SC_ARGS,__VA_ARGS__)); \ 242 __PROTECT(x, ret,__MAP(x,__SC_ARGS,__VA_ARGS__)); \
223 return ret; \ 243 return ret; \
224 } \ 244 } \
225 static inline long SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__)) 245 static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
246#endif /* __SYSCALL_DEFINEx */
226 247
227/* 248/*
228 * Called before coming back to user-mode. Returning to user-mode with an 249 * Called before coming back to user-mode. Returning to user-mode with an
@@ -252,7 +273,12 @@ static inline void addr_limit_user_check(void)
252 * Please note that these prototypes here are only provided for information 273 * Please note that these prototypes here are only provided for information
253 * purposes, for static analysis, and for linking from the syscall table. 274 * purposes, for static analysis, and for linking from the syscall table.
254 * These functions should not be called elsewhere from kernel code. 275 * These functions should not be called elsewhere from kernel code.
276 *
277 * As the syscall calling convention may be different from the default
278 * for architectures overriding the syscall calling convention, do not
279 * include the prototypes if CONFIG_ARCH_HAS_SYSCALL_WRAPPER is enabled.
255 */ 280 */
281#ifndef CONFIG_ARCH_HAS_SYSCALL_WRAPPER
256asmlinkage long sys_io_setup(unsigned nr_reqs, aio_context_t __user *ctx); 282asmlinkage long sys_io_setup(unsigned nr_reqs, aio_context_t __user *ctx);
257asmlinkage long sys_io_destroy(aio_context_t ctx); 283asmlinkage long sys_io_destroy(aio_context_t ctx);
258asmlinkage long sys_io_submit(aio_context_t, long, 284asmlinkage long sys_io_submit(aio_context_t, long,
@@ -1076,6 +1102,8 @@ asmlinkage long sys_old_mmap(struct mmap_arg_struct __user *arg);
1076 */ 1102 */
1077asmlinkage long sys_ni_syscall(void); 1103asmlinkage long sys_ni_syscall(void);
1078 1104
1105#endif /* CONFIG_ARCH_HAS_SYSCALL_WRAPPER */
1106
1079 1107
1080/* 1108/*
1081 * Kernel code should not call syscalls (i.e., sys_xyzyyz()) directly. 1109 * Kernel code should not call syscalls (i.e., sys_xyzyyz()) directly.
diff --git a/include/linux/textsearch.h b/include/linux/textsearch.h
index 0494db3fd9e8..13770cfe33ad 100644
--- a/include/linux/textsearch.h
+++ b/include/linux/textsearch.h
@@ -62,7 +62,7 @@ struct ts_config
62 int flags; 62 int flags;
63 63
64 /** 64 /**
65 * get_next_block - fetch next block of data 65 * @get_next_block: fetch next block of data
66 * @consumed: number of bytes consumed by the caller 66 * @consumed: number of bytes consumed by the caller
67 * @dst: destination buffer 67 * @dst: destination buffer
68 * @conf: search configuration 68 * @conf: search configuration
@@ -79,7 +79,7 @@ struct ts_config
79 struct ts_state *state); 79 struct ts_state *state);
80 80
81 /** 81 /**
82 * finish - finalize/clean a series of get_next_block() calls 82 * @finish: finalize/clean a series of get_next_block() calls
83 * @conf: search configuration 83 * @conf: search configuration
84 * @state: search state 84 * @state: search state
85 * 85 *
diff --git a/include/linux/thermal.h b/include/linux/thermal.h
index 8c5302374eaa..7834be668d80 100644
--- a/include/linux/thermal.h
+++ b/include/linux/thermal.h
@@ -148,6 +148,7 @@ struct thermal_cooling_device {
148 struct device device; 148 struct device device;
149 struct device_node *np; 149 struct device_node *np;
150 void *devdata; 150 void *devdata;
151 void *stats;
151 const struct thermal_cooling_device_ops *ops; 152 const struct thermal_cooling_device_ops *ops;
152 bool updated; /* true if the cooling device does not need update */ 153 bool updated; /* true if the cooling device does not need update */
153 struct mutex lock; /* protect thermal_instances list */ 154 struct mutex lock; /* protect thermal_instances list */