diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/dt-bindings/gpio/meson8-gpio.h | 157 | ||||
-rw-r--r-- | include/linux/compat.h | 9 | ||||
-rw-r--r-- | include/linux/compiler.h | 4 | ||||
-rw-r--r-- | include/linux/efi.h | 2 | ||||
-rw-r--r-- | include/linux/gpio/consumer.h | 17 | ||||
-rw-r--r-- | include/linux/mfd/stmpe.h | 16 | ||||
-rw-r--r-- | include/linux/mfd/tc3589x.h | 12 | ||||
-rw-r--r-- | include/linux/nfs4.h | 1 | ||||
-rw-r--r-- | include/linux/nfs_fs_sb.h | 9 | ||||
-rw-r--r-- | include/linux/nfs_idmap.h | 2 | ||||
-rw-r--r-- | include/linux/nfs_page.h | 22 | ||||
-rw-r--r-- | include/linux/nfs_xdr.h | 19 | ||||
-rw-r--r-- | include/linux/of_gpio.h | 1 | ||||
-rw-r--r-- | include/linux/perf_event.h | 10 | ||||
-rw-r--r-- | include/linux/pinctrl/consumer.h | 6 | ||||
-rw-r--r-- | include/linux/pinctrl/pinconf-generic.h | 29 | ||||
-rw-r--r-- | include/linux/pinctrl/pinctrl.h | 12 | ||||
-rw-r--r-- | include/linux/pstore.h | 1 | ||||
-rw-r--r-- | include/linux/pstore_ram.h | 1 | ||||
-rw-r--r-- | include/linux/sunrpc/clnt.h | 3 | ||||
-rw-r--r-- | include/linux/sunrpc/metrics.h | 4 | ||||
-rw-r--r-- | include/linux/sunrpc/rpc_rdma.h | 14 | ||||
-rw-r--r-- | include/linux/sunrpc/svc_rdma.h | 2 | ||||
-rw-r--r-- | include/linux/sunrpc/xprt.h | 6 | ||||
-rw-r--r-- | include/linux/syscalls.h | 8 |
25 files changed, 306 insertions, 61 deletions
diff --git a/include/dt-bindings/gpio/meson8-gpio.h b/include/dt-bindings/gpio/meson8-gpio.h new file mode 100644 index 000000000000..fdaeb5cbf5e1 --- /dev/null +++ b/include/dt-bindings/gpio/meson8-gpio.h | |||
@@ -0,0 +1,157 @@ | |||
1 | /* | ||
2 | * GPIO definitions for Amlogic Meson8 SoCs | ||
3 | * | ||
4 | * Copyright (C) 2014 Beniamino Galvani <b.galvani@gmail.com> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public License | ||
8 | * version 2 as published by the Free Software Foundation. | ||
9 | * | ||
10 | * You should have received a copy of the GNU General Public License | ||
11 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
12 | */ | ||
13 | |||
14 | #ifndef _DT_BINDINGS_MESON8_GPIO_H | ||
15 | #define _DT_BINDINGS_MESON8_GPIO_H | ||
16 | |||
17 | /* First GPIO chip */ | ||
18 | #define GPIOX_0 0 | ||
19 | #define GPIOX_1 1 | ||
20 | #define GPIOX_2 2 | ||
21 | #define GPIOX_3 3 | ||
22 | #define GPIOX_4 4 | ||
23 | #define GPIOX_5 5 | ||
24 | #define GPIOX_6 6 | ||
25 | #define GPIOX_7 7 | ||
26 | #define GPIOX_8 8 | ||
27 | #define GPIOX_9 9 | ||
28 | #define GPIOX_10 10 | ||
29 | #define GPIOX_11 11 | ||
30 | #define GPIOX_12 12 | ||
31 | #define GPIOX_13 13 | ||
32 | #define GPIOX_14 14 | ||
33 | #define GPIOX_15 15 | ||
34 | #define GPIOX_16 16 | ||
35 | #define GPIOX_17 17 | ||
36 | #define GPIOX_18 18 | ||
37 | #define GPIOX_19 19 | ||
38 | #define GPIOX_20 20 | ||
39 | #define GPIOX_21 21 | ||
40 | #define GPIOY_0 22 | ||
41 | #define GPIOY_1 23 | ||
42 | #define GPIOY_2 24 | ||
43 | #define GPIOY_3 25 | ||
44 | #define GPIOY_4 26 | ||
45 | #define GPIOY_5 27 | ||
46 | #define GPIOY_6 28 | ||
47 | #define GPIOY_7 29 | ||
48 | #define GPIOY_8 30 | ||
49 | #define GPIOY_9 31 | ||
50 | #define GPIOY_10 32 | ||
51 | #define GPIOY_11 33 | ||
52 | #define GPIOY_12 34 | ||
53 | #define GPIOY_13 35 | ||
54 | #define GPIOY_14 36 | ||
55 | #define GPIOY_15 37 | ||
56 | #define GPIOY_16 38 | ||
57 | #define GPIODV_0 39 | ||
58 | #define GPIODV_1 40 | ||
59 | #define GPIODV_2 41 | ||
60 | #define GPIODV_3 42 | ||
61 | #define GPIODV_4 43 | ||
62 | #define GPIODV_5 44 | ||
63 | #define GPIODV_6 45 | ||
64 | #define GPIODV_7 46 | ||
65 | #define GPIODV_8 47 | ||
66 | #define GPIODV_9 48 | ||
67 | #define GPIODV_10 49 | ||
68 | #define GPIODV_11 50 | ||
69 | #define GPIODV_12 51 | ||
70 | #define GPIODV_13 52 | ||
71 | #define GPIODV_14 53 | ||
72 | #define GPIODV_15 54 | ||
73 | #define GPIODV_16 55 | ||
74 | #define GPIODV_17 56 | ||
75 | #define GPIODV_18 57 | ||
76 | #define GPIODV_19 58 | ||
77 | #define GPIODV_20 59 | ||
78 | #define GPIODV_21 60 | ||
79 | #define GPIODV_22 61 | ||
80 | #define GPIODV_23 62 | ||
81 | #define GPIODV_24 63 | ||
82 | #define GPIODV_25 64 | ||
83 | #define GPIODV_26 65 | ||
84 | #define GPIODV_27 66 | ||
85 | #define GPIODV_28 67 | ||
86 | #define GPIODV_29 68 | ||
87 | #define GPIOH_0 69 | ||
88 | #define GPIOH_1 70 | ||
89 | #define GPIOH_2 71 | ||
90 | #define GPIOH_3 72 | ||
91 | #define GPIOH_4 73 | ||
92 | #define GPIOH_5 74 | ||
93 | #define GPIOH_6 75 | ||
94 | #define GPIOH_7 76 | ||
95 | #define GPIOH_8 77 | ||
96 | #define GPIOH_9 78 | ||
97 | #define GPIOZ_0 79 | ||
98 | #define GPIOZ_1 80 | ||
99 | #define GPIOZ_2 81 | ||
100 | #define GPIOZ_3 82 | ||
101 | #define GPIOZ_4 83 | ||
102 | #define GPIOZ_5 84 | ||
103 | #define GPIOZ_6 85 | ||
104 | #define GPIOZ_7 86 | ||
105 | #define GPIOZ_8 87 | ||
106 | #define GPIOZ_9 88 | ||
107 | #define GPIOZ_10 89 | ||
108 | #define GPIOZ_11 90 | ||
109 | #define GPIOZ_12 91 | ||
110 | #define GPIOZ_13 92 | ||
111 | #define GPIOZ_14 93 | ||
112 | #define CARD_0 94 | ||
113 | #define CARD_1 95 | ||
114 | #define CARD_2 96 | ||
115 | #define CARD_3 97 | ||
116 | #define CARD_4 98 | ||
117 | #define CARD_5 99 | ||
118 | #define CARD_6 100 | ||
119 | #define BOOT_0 101 | ||
120 | #define BOOT_1 102 | ||
121 | #define BOOT_2 103 | ||
122 | #define BOOT_3 104 | ||
123 | #define BOOT_4 105 | ||
124 | #define BOOT_5 106 | ||
125 | #define BOOT_6 107 | ||
126 | #define BOOT_7 108 | ||
127 | #define BOOT_8 109 | ||
128 | #define BOOT_9 110 | ||
129 | #define BOOT_10 111 | ||
130 | #define BOOT_11 112 | ||
131 | #define BOOT_12 113 | ||
132 | #define BOOT_13 114 | ||
133 | #define BOOT_14 115 | ||
134 | #define BOOT_15 116 | ||
135 | #define BOOT_16 117 | ||
136 | #define BOOT_17 118 | ||
137 | #define BOOT_18 119 | ||
138 | |||
139 | /* Second GPIO chip */ | ||
140 | #define GPIOAO_0 0 | ||
141 | #define GPIOAO_1 1 | ||
142 | #define GPIOAO_2 2 | ||
143 | #define GPIOAO_3 3 | ||
144 | #define GPIOAO_4 4 | ||
145 | #define GPIOAO_5 5 | ||
146 | #define GPIOAO_6 6 | ||
147 | #define GPIOAO_7 7 | ||
148 | #define GPIOAO_8 8 | ||
149 | #define GPIOAO_9 9 | ||
150 | #define GPIOAO_10 10 | ||
151 | #define GPIOAO_11 11 | ||
152 | #define GPIOAO_12 12 | ||
153 | #define GPIOAO_13 13 | ||
154 | #define GPIO_BSD_EN 14 | ||
155 | #define GPIO_TEST_N 15 | ||
156 | |||
157 | #endif /* _DT_BINDINGS_MESON8_GPIO_H */ | ||
diff --git a/include/linux/compat.h b/include/linux/compat.h index 7450ca2ac1fc..ab25814690bc 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
@@ -689,6 +689,15 @@ asmlinkage long compat_sys_sendfile64(int out_fd, int in_fd, | |||
689 | asmlinkage long compat_sys_sigaltstack(const compat_stack_t __user *uss_ptr, | 689 | asmlinkage long compat_sys_sigaltstack(const compat_stack_t __user *uss_ptr, |
690 | compat_stack_t __user *uoss_ptr); | 690 | compat_stack_t __user *uoss_ptr); |
691 | 691 | ||
692 | #ifdef __ARCH_WANT_SYS_SIGPENDING | ||
693 | asmlinkage long compat_sys_sigpending(compat_old_sigset_t __user *set); | ||
694 | #endif | ||
695 | |||
696 | #ifdef __ARCH_WANT_SYS_SIGPROCMASK | ||
697 | asmlinkage long compat_sys_sigprocmask(int how, compat_old_sigset_t __user *nset, | ||
698 | compat_old_sigset_t __user *oset); | ||
699 | #endif | ||
700 | |||
692 | int compat_restore_altstack(const compat_stack_t __user *uss); | 701 | int compat_restore_altstack(const compat_stack_t __user *uss); |
693 | int __compat_save_altstack(compat_stack_t __user *, unsigned long); | 702 | int __compat_save_altstack(compat_stack_t __user *, unsigned long); |
694 | #define compat_save_altstack_ex(uss, sp) do { \ | 703 | #define compat_save_altstack_ex(uss, sp) do { \ |
diff --git a/include/linux/compiler.h b/include/linux/compiler.h index 176bf816875e..17f624cdf53c 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h | |||
@@ -54,7 +54,11 @@ extern void __chk_io_ptr(const volatile void __iomem *); | |||
54 | #include <linux/compiler-gcc.h> | 54 | #include <linux/compiler-gcc.h> |
55 | #endif | 55 | #endif |
56 | 56 | ||
57 | #ifdef CC_USING_HOTPATCH | ||
58 | #define notrace __attribute__((hotpatch(0,0))) | ||
59 | #else | ||
57 | #define notrace __attribute__((no_instrument_function)) | 60 | #define notrace __attribute__((no_instrument_function)) |
61 | #endif | ||
58 | 62 | ||
59 | /* Intel compiler defines __GNUC__. So we will overwrite implementations | 63 | /* Intel compiler defines __GNUC__. So we will overwrite implementations |
60 | * coming from above header files here | 64 | * coming from above header files here |
diff --git a/include/linux/efi.h b/include/linux/efi.h index b674837e2b98..cf7e431cbc73 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h | |||
@@ -875,6 +875,8 @@ static inline efi_status_t efi_query_variable_store(u32 attributes, unsigned lon | |||
875 | #endif | 875 | #endif |
876 | extern void __iomem *efi_lookup_mapped_addr(u64 phys_addr); | 876 | extern void __iomem *efi_lookup_mapped_addr(u64 phys_addr); |
877 | extern int efi_config_init(efi_config_table_type_t *arch_tables); | 877 | extern int efi_config_init(efi_config_table_type_t *arch_tables); |
878 | extern int efi_config_parse_tables(void *config_tables, int count, int sz, | ||
879 | efi_config_table_type_t *arch_tables); | ||
878 | extern u64 efi_get_iobase (void); | 880 | extern u64 efi_get_iobase (void); |
879 | extern u32 efi_mem_type (unsigned long phys_addr); | 881 | extern u32 efi_mem_type (unsigned long phys_addr); |
880 | extern u64 efi_mem_attributes (unsigned long phys_addr); | 882 | extern u64 efi_mem_attributes (unsigned long phys_addr); |
diff --git a/include/linux/gpio/consumer.h b/include/linux/gpio/consumer.h index fd85cb120ee0..45afc2dee560 100644 --- a/include/linux/gpio/consumer.h +++ b/include/linux/gpio/consumer.h | |||
@@ -340,31 +340,32 @@ static inline int desc_to_gpio(const struct gpio_desc *desc) | |||
340 | * etc. | 340 | * etc. |
341 | */ | 341 | */ |
342 | #define __gpiod_get(dev, con_id, flags, ...) __gpiod_get(dev, con_id, flags) | 342 | #define __gpiod_get(dev, con_id, flags, ...) __gpiod_get(dev, con_id, flags) |
343 | #define gpiod_get(varargs...) __gpiod_get(varargs, 0) | 343 | #define gpiod_get(varargs...) __gpiod_get(varargs, GPIOD_ASIS) |
344 | #define __gpiod_get_index(dev, con_id, index, flags, ...) \ | 344 | #define __gpiod_get_index(dev, con_id, index, flags, ...) \ |
345 | __gpiod_get_index(dev, con_id, index, flags) | 345 | __gpiod_get_index(dev, con_id, index, flags) |
346 | #define gpiod_get_index(varargs...) __gpiod_get_index(varargs, 0) | 346 | #define gpiod_get_index(varargs...) __gpiod_get_index(varargs, GPIOD_ASIS) |
347 | #define __gpiod_get_optional(dev, con_id, flags, ...) \ | 347 | #define __gpiod_get_optional(dev, con_id, flags, ...) \ |
348 | __gpiod_get_optional(dev, con_id, flags) | 348 | __gpiod_get_optional(dev, con_id, flags) |
349 | #define gpiod_get_optional(varargs...) __gpiod_get_optional(varargs, 0) | 349 | #define gpiod_get_optional(varargs...) __gpiod_get_optional(varargs, GPIOD_ASIS) |
350 | #define __gpiod_get_index_optional(dev, con_id, index, flags, ...) \ | 350 | #define __gpiod_get_index_optional(dev, con_id, index, flags, ...) \ |
351 | __gpiod_get_index_optional(dev, con_id, index, flags) | 351 | __gpiod_get_index_optional(dev, con_id, index, flags) |
352 | #define gpiod_get_index_optional(varargs...) \ | 352 | #define gpiod_get_index_optional(varargs...) \ |
353 | __gpiod_get_index_optional(varargs, 0) | 353 | __gpiod_get_index_optional(varargs, GPIOD_ASIS) |
354 | #define __devm_gpiod_get(dev, con_id, flags, ...) \ | 354 | #define __devm_gpiod_get(dev, con_id, flags, ...) \ |
355 | __devm_gpiod_get(dev, con_id, flags) | 355 | __devm_gpiod_get(dev, con_id, flags) |
356 | #define devm_gpiod_get(varargs...) __devm_gpiod_get(varargs, 0) | 356 | #define devm_gpiod_get(varargs...) __devm_gpiod_get(varargs, GPIOD_ASIS) |
357 | #define __devm_gpiod_get_index(dev, con_id, index, flags, ...) \ | 357 | #define __devm_gpiod_get_index(dev, con_id, index, flags, ...) \ |
358 | __devm_gpiod_get_index(dev, con_id, index, flags) | 358 | __devm_gpiod_get_index(dev, con_id, index, flags) |
359 | #define devm_gpiod_get_index(varargs...) __devm_gpiod_get_index(varargs, 0) | 359 | #define devm_gpiod_get_index(varargs...) \ |
360 | __devm_gpiod_get_index(varargs, GPIOD_ASIS) | ||
360 | #define __devm_gpiod_get_optional(dev, con_id, flags, ...) \ | 361 | #define __devm_gpiod_get_optional(dev, con_id, flags, ...) \ |
361 | __devm_gpiod_get_optional(dev, con_id, flags) | 362 | __devm_gpiod_get_optional(dev, con_id, flags) |
362 | #define devm_gpiod_get_optional(varargs...) \ | 363 | #define devm_gpiod_get_optional(varargs...) \ |
363 | __devm_gpiod_get_optional(varargs, 0) | 364 | __devm_gpiod_get_optional(varargs, GPIOD_ASIS) |
364 | #define __devm_gpiod_get_index_optional(dev, con_id, index, flags, ...) \ | 365 | #define __devm_gpiod_get_index_optional(dev, con_id, index, flags, ...) \ |
365 | __devm_gpiod_get_index_optional(dev, con_id, index, flags) | 366 | __devm_gpiod_get_index_optional(dev, con_id, index, flags) |
366 | #define devm_gpiod_get_index_optional(varargs...) \ | 367 | #define devm_gpiod_get_index_optional(varargs...) \ |
367 | __devm_gpiod_get_index_optional(varargs, 0) | 368 | __devm_gpiod_get_index_optional(varargs, GPIOD_ASIS) |
368 | 369 | ||
369 | #if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS) | 370 | #if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS) |
370 | 371 | ||
diff --git a/include/linux/mfd/stmpe.h b/include/linux/mfd/stmpe.h index f742b6717d52..c9d869027300 100644 --- a/include/linux/mfd/stmpe.h +++ b/include/linux/mfd/stmpe.h | |||
@@ -118,20 +118,6 @@ extern int stmpe_disable(struct stmpe *stmpe, unsigned int blocks); | |||
118 | #define STMPE_GPIO_NOREQ_811_TOUCH (0xf0) | 118 | #define STMPE_GPIO_NOREQ_811_TOUCH (0xf0) |
119 | 119 | ||
120 | /** | 120 | /** |
121 | * struct stmpe_gpio_platform_data - STMPE GPIO platform data | ||
122 | * @norequest_mask: bitmask specifying which GPIOs should _not_ be | ||
123 | * requestable due to different usage (e.g. touch, keypad) | ||
124 | * STMPE_GPIO_NOREQ_* macros can be used here. | ||
125 | * @setup: board specific setup callback. | ||
126 | * @remove: board specific remove callback | ||
127 | */ | ||
128 | struct stmpe_gpio_platform_data { | ||
129 | unsigned norequest_mask; | ||
130 | void (*setup)(struct stmpe *stmpe, unsigned gpio_base); | ||
131 | void (*remove)(struct stmpe *stmpe, unsigned gpio_base); | ||
132 | }; | ||
133 | |||
134 | /** | ||
135 | * struct stmpe_ts_platform_data - stmpe811 touch screen controller platform | 121 | * struct stmpe_ts_platform_data - stmpe811 touch screen controller platform |
136 | * data | 122 | * data |
137 | * @sample_time: ADC converstion time in number of clock. | 123 | * @sample_time: ADC converstion time in number of clock. |
@@ -182,7 +168,6 @@ struct stmpe_ts_platform_data { | |||
182 | * @irq_over_gpio: true if gpio is used to get irq | 168 | * @irq_over_gpio: true if gpio is used to get irq |
183 | * @irq_gpio: gpio number over which irq will be requested (significant only if | 169 | * @irq_gpio: gpio number over which irq will be requested (significant only if |
184 | * irq_over_gpio is true) | 170 | * irq_over_gpio is true) |
185 | * @gpio: GPIO-specific platform data | ||
186 | * @ts: touchscreen-specific platform data | 171 | * @ts: touchscreen-specific platform data |
187 | */ | 172 | */ |
188 | struct stmpe_platform_data { | 173 | struct stmpe_platform_data { |
@@ -194,7 +179,6 @@ struct stmpe_platform_data { | |||
194 | int irq_gpio; | 179 | int irq_gpio; |
195 | int autosleep_timeout; | 180 | int autosleep_timeout; |
196 | 181 | ||
197 | struct stmpe_gpio_platform_data *gpio; | ||
198 | struct stmpe_ts_platform_data *ts; | 182 | struct stmpe_ts_platform_data *ts; |
199 | }; | 183 | }; |
200 | 184 | ||
diff --git a/include/linux/mfd/tc3589x.h b/include/linux/mfd/tc3589x.h index e1c12d84c26a..c203c9c56776 100644 --- a/include/linux/mfd/tc3589x.h +++ b/include/linux/mfd/tc3589x.h | |||
@@ -163,24 +163,12 @@ struct tc3589x_keypad_platform_data { | |||
163 | }; | 163 | }; |
164 | 164 | ||
165 | /** | 165 | /** |
166 | * struct tc3589x_gpio_platform_data - TC3589x GPIO platform data | ||
167 | * @setup: callback for board-specific initialization | ||
168 | * @remove: callback for board-specific teardown | ||
169 | */ | ||
170 | struct tc3589x_gpio_platform_data { | ||
171 | void (*setup)(struct tc3589x *tc3589x, unsigned gpio_base); | ||
172 | void (*remove)(struct tc3589x *tc3589x, unsigned gpio_base); | ||
173 | }; | ||
174 | |||
175 | /** | ||
176 | * struct tc3589x_platform_data - TC3589x platform data | 166 | * struct tc3589x_platform_data - TC3589x platform data |
177 | * @block: bitmask of blocks to enable (use TC3589x_BLOCK_*) | 167 | * @block: bitmask of blocks to enable (use TC3589x_BLOCK_*) |
178 | * @gpio: GPIO-specific platform data | ||
179 | * @keypad: keypad-specific platform data | 168 | * @keypad: keypad-specific platform data |
180 | */ | 169 | */ |
181 | struct tc3589x_platform_data { | 170 | struct tc3589x_platform_data { |
182 | unsigned int block; | 171 | unsigned int block; |
183 | struct tc3589x_gpio_platform_data *gpio; | ||
184 | const struct tc3589x_keypad_platform_data *keypad; | 172 | const struct tc3589x_keypad_platform_data *keypad; |
185 | }; | 173 | }; |
186 | 174 | ||
diff --git a/include/linux/nfs4.h b/include/linux/nfs4.h index 022b761dbf0a..de7c91ca427e 100644 --- a/include/linux/nfs4.h +++ b/include/linux/nfs4.h | |||
@@ -516,6 +516,7 @@ enum pnfs_layouttype { | |||
516 | LAYOUT_NFSV4_1_FILES = 1, | 516 | LAYOUT_NFSV4_1_FILES = 1, |
517 | LAYOUT_OSD2_OBJECTS = 2, | 517 | LAYOUT_OSD2_OBJECTS = 2, |
518 | LAYOUT_BLOCK_VOLUME = 3, | 518 | LAYOUT_BLOCK_VOLUME = 3, |
519 | LAYOUT_FLEX_FILES = 4, | ||
519 | }; | 520 | }; |
520 | 521 | ||
521 | /* used for both layout return and recall */ | 522 | /* used for both layout return and recall */ |
diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h index ddea982355f3..5e1273d4de14 100644 --- a/include/linux/nfs_fs_sb.h +++ b/include/linux/nfs_fs_sb.h | |||
@@ -77,10 +77,6 @@ struct nfs_client { | |||
77 | /* Client owner identifier */ | 77 | /* Client owner identifier */ |
78 | const char * cl_owner_id; | 78 | const char * cl_owner_id; |
79 | 79 | ||
80 | /* Our own IP address, as a null-terminated string. | ||
81 | * This is used to generate the mv0 callback address. | ||
82 | */ | ||
83 | char cl_ipaddr[48]; | ||
84 | u32 cl_cb_ident; /* v4.0 callback identifier */ | 80 | u32 cl_cb_ident; /* v4.0 callback identifier */ |
85 | const struct nfs4_minor_version_ops *cl_mvops; | 81 | const struct nfs4_minor_version_ops *cl_mvops; |
86 | unsigned long cl_mig_gen; | 82 | unsigned long cl_mig_gen; |
@@ -108,6 +104,11 @@ struct nfs_client { | |||
108 | #define NFS_SP4_MACH_CRED_COMMIT 6 /* COMMIT */ | 104 | #define NFS_SP4_MACH_CRED_COMMIT 6 /* COMMIT */ |
109 | #endif /* CONFIG_NFS_V4 */ | 105 | #endif /* CONFIG_NFS_V4 */ |
110 | 106 | ||
107 | /* Our own IP address, as a null-terminated string. | ||
108 | * This is used to generate the mv0 callback address. | ||
109 | */ | ||
110 | char cl_ipaddr[48]; | ||
111 | |||
111 | #ifdef CONFIG_NFS_FSCACHE | 112 | #ifdef CONFIG_NFS_FSCACHE |
112 | struct fscache_cookie *fscache; /* client index cache cookie */ | 113 | struct fscache_cookie *fscache; /* client index cache cookie */ |
113 | #endif | 114 | #endif |
diff --git a/include/linux/nfs_idmap.h b/include/linux/nfs_idmap.h index 0f4b79da6584..333844e38f66 100644 --- a/include/linux/nfs_idmap.h +++ b/include/linux/nfs_idmap.h | |||
@@ -73,5 +73,7 @@ int nfs_map_group_to_gid(const struct nfs_server *, const char *, size_t, kgid_t | |||
73 | int nfs_map_uid_to_name(const struct nfs_server *, kuid_t, char *, size_t); | 73 | int nfs_map_uid_to_name(const struct nfs_server *, kuid_t, char *, size_t); |
74 | int nfs_map_gid_to_group(const struct nfs_server *, kgid_t, char *, size_t); | 74 | int nfs_map_gid_to_group(const struct nfs_server *, kgid_t, char *, size_t); |
75 | 75 | ||
76 | int nfs_map_string_to_numeric(const char *name, size_t namelen, __u32 *res); | ||
77 | |||
76 | extern unsigned int nfs_idmap_cache_timeout; | 78 | extern unsigned int nfs_idmap_cache_timeout; |
77 | #endif /* NFS_IDMAP_H */ | 79 | #endif /* NFS_IDMAP_H */ |
diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h index 6c3e06ee2fb7..3eb072dbce83 100644 --- a/include/linux/nfs_page.h +++ b/include/linux/nfs_page.h | |||
@@ -58,6 +58,9 @@ struct nfs_pageio_ops { | |||
58 | size_t (*pg_test)(struct nfs_pageio_descriptor *, struct nfs_page *, | 58 | size_t (*pg_test)(struct nfs_pageio_descriptor *, struct nfs_page *, |
59 | struct nfs_page *); | 59 | struct nfs_page *); |
60 | int (*pg_doio)(struct nfs_pageio_descriptor *); | 60 | int (*pg_doio)(struct nfs_pageio_descriptor *); |
61 | unsigned int (*pg_get_mirror_count)(struct nfs_pageio_descriptor *, | ||
62 | struct nfs_page *); | ||
63 | void (*pg_cleanup)(struct nfs_pageio_descriptor *); | ||
61 | }; | 64 | }; |
62 | 65 | ||
63 | struct nfs_rw_ops { | 66 | struct nfs_rw_ops { |
@@ -69,18 +72,21 @@ struct nfs_rw_ops { | |||
69 | struct inode *); | 72 | struct inode *); |
70 | void (*rw_result)(struct rpc_task *, struct nfs_pgio_header *); | 73 | void (*rw_result)(struct rpc_task *, struct nfs_pgio_header *); |
71 | void (*rw_initiate)(struct nfs_pgio_header *, struct rpc_message *, | 74 | void (*rw_initiate)(struct nfs_pgio_header *, struct rpc_message *, |
75 | const struct nfs_rpc_ops *, | ||
72 | struct rpc_task_setup *, int); | 76 | struct rpc_task_setup *, int); |
73 | }; | 77 | }; |
74 | 78 | ||
75 | struct nfs_pageio_descriptor { | 79 | struct nfs_pgio_mirror { |
76 | struct list_head pg_list; | 80 | struct list_head pg_list; |
77 | unsigned long pg_bytes_written; | 81 | unsigned long pg_bytes_written; |
78 | size_t pg_count; | 82 | size_t pg_count; |
79 | size_t pg_bsize; | 83 | size_t pg_bsize; |
80 | unsigned int pg_base; | 84 | unsigned int pg_base; |
81 | unsigned char pg_moreio : 1, | 85 | unsigned char pg_recoalesce : 1; |
82 | pg_recoalesce : 1; | 86 | }; |
83 | 87 | ||
88 | struct nfs_pageio_descriptor { | ||
89 | unsigned char pg_moreio : 1; | ||
84 | struct inode *pg_inode; | 90 | struct inode *pg_inode; |
85 | const struct nfs_pageio_ops *pg_ops; | 91 | const struct nfs_pageio_ops *pg_ops; |
86 | const struct nfs_rw_ops *pg_rw_ops; | 92 | const struct nfs_rw_ops *pg_rw_ops; |
@@ -91,8 +97,18 @@ struct nfs_pageio_descriptor { | |||
91 | struct pnfs_layout_segment *pg_lseg; | 97 | struct pnfs_layout_segment *pg_lseg; |
92 | struct nfs_direct_req *pg_dreq; | 98 | struct nfs_direct_req *pg_dreq; |
93 | void *pg_layout_private; | 99 | void *pg_layout_private; |
100 | unsigned int pg_bsize; /* default bsize for mirrors */ | ||
101 | |||
102 | u32 pg_mirror_count; | ||
103 | struct nfs_pgio_mirror *pg_mirrors; | ||
104 | struct nfs_pgio_mirror pg_mirrors_static[1]; | ||
105 | struct nfs_pgio_mirror *pg_mirrors_dynamic; | ||
106 | u32 pg_mirror_idx; /* current mirror */ | ||
94 | }; | 107 | }; |
95 | 108 | ||
109 | /* arbitrarily selected limit to number of mirrors */ | ||
110 | #define NFS_PAGEIO_DESCRIPTOR_MIRROR_MAX 16 | ||
111 | |||
96 | #define NFS_WBACK_BUSY(req) (test_bit(PG_BUSY,&(req)->wb_flags)) | 112 | #define NFS_WBACK_BUSY(req) (test_bit(PG_BUSY,&(req)->wb_flags)) |
97 | 113 | ||
98 | extern struct nfs_page *nfs_create_request(struct nfs_open_context *ctx, | 114 | extern struct nfs_page *nfs_create_request(struct nfs_open_context *ctx, |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 467c84efb596..38d96ba935c2 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
@@ -285,6 +285,7 @@ struct nfs4_layoutcommit_data { | |||
285 | struct nfs_fattr fattr; | 285 | struct nfs_fattr fattr; |
286 | struct list_head lseg_list; | 286 | struct list_head lseg_list; |
287 | struct rpc_cred *cred; | 287 | struct rpc_cred *cred; |
288 | struct inode *inode; | ||
288 | struct nfs4_layoutcommit_args args; | 289 | struct nfs4_layoutcommit_args args; |
289 | struct nfs4_layoutcommit_res res; | 290 | struct nfs4_layoutcommit_res res; |
290 | }; | 291 | }; |
@@ -293,6 +294,7 @@ struct nfs4_layoutreturn_args { | |||
293 | struct nfs4_sequence_args seq_args; | 294 | struct nfs4_sequence_args seq_args; |
294 | struct pnfs_layout_hdr *layout; | 295 | struct pnfs_layout_hdr *layout; |
295 | struct inode *inode; | 296 | struct inode *inode; |
297 | struct pnfs_layout_range range; | ||
296 | nfs4_stateid stateid; | 298 | nfs4_stateid stateid; |
297 | __u32 layout_type; | 299 | __u32 layout_type; |
298 | }; | 300 | }; |
@@ -308,6 +310,7 @@ struct nfs4_layoutreturn { | |||
308 | struct nfs4_layoutreturn_res res; | 310 | struct nfs4_layoutreturn_res res; |
309 | struct rpc_cred *cred; | 311 | struct rpc_cred *cred; |
310 | struct nfs_client *clp; | 312 | struct nfs_client *clp; |
313 | struct inode *inode; | ||
311 | int rpc_status; | 314 | int rpc_status; |
312 | }; | 315 | }; |
313 | 316 | ||
@@ -325,6 +328,7 @@ struct nfs_openargs { | |||
325 | struct nfs_seqid * seqid; | 328 | struct nfs_seqid * seqid; |
326 | int open_flags; | 329 | int open_flags; |
327 | fmode_t fmode; | 330 | fmode_t fmode; |
331 | u32 share_access; | ||
328 | u32 access; | 332 | u32 access; |
329 | __u64 clientid; | 333 | __u64 clientid; |
330 | struct stateowner_id id; | 334 | struct stateowner_id id; |
@@ -389,9 +393,10 @@ struct nfs_open_confirmres { | |||
389 | struct nfs_closeargs { | 393 | struct nfs_closeargs { |
390 | struct nfs4_sequence_args seq_args; | 394 | struct nfs4_sequence_args seq_args; |
391 | struct nfs_fh * fh; | 395 | struct nfs_fh * fh; |
392 | nfs4_stateid * stateid; | 396 | nfs4_stateid stateid; |
393 | struct nfs_seqid * seqid; | 397 | struct nfs_seqid * seqid; |
394 | fmode_t fmode; | 398 | fmode_t fmode; |
399 | u32 share_access; | ||
395 | const u32 * bitmask; | 400 | const u32 * bitmask; |
396 | }; | 401 | }; |
397 | 402 | ||
@@ -416,12 +421,13 @@ struct nfs_lock_args { | |||
416 | struct nfs_fh * fh; | 421 | struct nfs_fh * fh; |
417 | struct file_lock * fl; | 422 | struct file_lock * fl; |
418 | struct nfs_seqid * lock_seqid; | 423 | struct nfs_seqid * lock_seqid; |
419 | nfs4_stateid * lock_stateid; | 424 | nfs4_stateid lock_stateid; |
420 | struct nfs_seqid * open_seqid; | 425 | struct nfs_seqid * open_seqid; |
421 | nfs4_stateid * open_stateid; | 426 | nfs4_stateid open_stateid; |
422 | struct nfs_lowner lock_owner; | 427 | struct nfs_lowner lock_owner; |
423 | unsigned char block : 1; | 428 | unsigned char block : 1; |
424 | unsigned char reclaim : 1; | 429 | unsigned char reclaim : 1; |
430 | unsigned char new_lock : 1; | ||
425 | unsigned char new_lock_owner : 1; | 431 | unsigned char new_lock_owner : 1; |
426 | }; | 432 | }; |
427 | 433 | ||
@@ -437,7 +443,7 @@ struct nfs_locku_args { | |||
437 | struct nfs_fh * fh; | 443 | struct nfs_fh * fh; |
438 | struct file_lock * fl; | 444 | struct file_lock * fl; |
439 | struct nfs_seqid * seqid; | 445 | struct nfs_seqid * seqid; |
440 | nfs4_stateid * stateid; | 446 | nfs4_stateid stateid; |
441 | }; | 447 | }; |
442 | 448 | ||
443 | struct nfs_locku_res { | 449 | struct nfs_locku_res { |
@@ -513,6 +519,7 @@ struct nfs_pgio_res { | |||
513 | struct nfs4_sequence_res seq_res; | 519 | struct nfs4_sequence_res seq_res; |
514 | struct nfs_fattr * fattr; | 520 | struct nfs_fattr * fattr; |
515 | __u32 count; | 521 | __u32 count; |
522 | __u32 op_status; | ||
516 | int eof; /* used by read */ | 523 | int eof; /* used by read */ |
517 | struct nfs_writeverf * verf; /* used by write */ | 524 | struct nfs_writeverf * verf; /* used by write */ |
518 | const struct nfs_server *server; /* used by write */ | 525 | const struct nfs_server *server; /* used by write */ |
@@ -532,6 +539,7 @@ struct nfs_commitargs { | |||
532 | 539 | ||
533 | struct nfs_commitres { | 540 | struct nfs_commitres { |
534 | struct nfs4_sequence_res seq_res; | 541 | struct nfs4_sequence_res seq_res; |
542 | __u32 op_status; | ||
535 | struct nfs_fattr *fattr; | 543 | struct nfs_fattr *fattr; |
536 | struct nfs_writeverf *verf; | 544 | struct nfs_writeverf *verf; |
537 | const struct nfs_server *server; | 545 | const struct nfs_server *server; |
@@ -1325,7 +1333,8 @@ struct nfs_pgio_header { | |||
1325 | __u64 mds_offset; /* Filelayout dense stripe */ | 1333 | __u64 mds_offset; /* Filelayout dense stripe */ |
1326 | struct nfs_page_array page_array; | 1334 | struct nfs_page_array page_array; |
1327 | struct nfs_client *ds_clp; /* pNFS data server */ | 1335 | struct nfs_client *ds_clp; /* pNFS data server */ |
1328 | int ds_idx; /* ds index if ds_clp is set */ | 1336 | int ds_commit_idx; /* ds index if ds_clp is set */ |
1337 | int pgio_mirror_idx;/* mirror index in pgio layer */ | ||
1329 | }; | 1338 | }; |
1330 | 1339 | ||
1331 | struct nfs_mds_commit_info { | 1340 | struct nfs_mds_commit_info { |
diff --git a/include/linux/of_gpio.h b/include/linux/of_gpio.h index 38fc05036015..69dbe312b11b 100644 --- a/include/linux/of_gpio.h +++ b/include/linux/of_gpio.h | |||
@@ -52,6 +52,7 @@ extern int of_get_named_gpio_flags(struct device_node *np, | |||
52 | 52 | ||
53 | extern int of_mm_gpiochip_add(struct device_node *np, | 53 | extern int of_mm_gpiochip_add(struct device_node *np, |
54 | struct of_mm_gpio_chip *mm_gc); | 54 | struct of_mm_gpio_chip *mm_gc); |
55 | extern void of_mm_gpiochip_remove(struct of_mm_gpio_chip *mm_gc); | ||
55 | 56 | ||
56 | extern void of_gpiochip_add(struct gpio_chip *gc); | 57 | extern void of_gpiochip_add(struct gpio_chip *gc); |
57 | extern void of_gpiochip_remove(struct gpio_chip *gc); | 58 | extern void of_gpiochip_remove(struct gpio_chip *gc); |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 5cad0e6f3552..2cdc9d422bed 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
@@ -907,12 +907,22 @@ struct perf_pmu_events_attr { | |||
907 | const char *event_str; | 907 | const char *event_str; |
908 | }; | 908 | }; |
909 | 909 | ||
910 | ssize_t perf_event_sysfs_show(struct device *dev, struct device_attribute *attr, | ||
911 | char *page); | ||
912 | |||
910 | #define PMU_EVENT_ATTR(_name, _var, _id, _show) \ | 913 | #define PMU_EVENT_ATTR(_name, _var, _id, _show) \ |
911 | static struct perf_pmu_events_attr _var = { \ | 914 | static struct perf_pmu_events_attr _var = { \ |
912 | .attr = __ATTR(_name, 0444, _show, NULL), \ | 915 | .attr = __ATTR(_name, 0444, _show, NULL), \ |
913 | .id = _id, \ | 916 | .id = _id, \ |
914 | }; | 917 | }; |
915 | 918 | ||
919 | #define PMU_EVENT_ATTR_STRING(_name, _var, _str) \ | ||
920 | static struct perf_pmu_events_attr _var = { \ | ||
921 | .attr = __ATTR(_name, 0444, perf_event_sysfs_show, NULL), \ | ||
922 | .id = 0, \ | ||
923 | .event_str = _str, \ | ||
924 | }; | ||
925 | |||
916 | #define PMU_FORMAT_ATTR(_name, _format) \ | 926 | #define PMU_FORMAT_ATTR(_name, _format) \ |
917 | static ssize_t \ | 927 | static ssize_t \ |
918 | _name##_show(struct device *dev, \ | 928 | _name##_show(struct device *dev, \ |
diff --git a/include/linux/pinctrl/consumer.h b/include/linux/pinctrl/consumer.h index 18eccefea06e..72c0415d6c21 100644 --- a/include/linux/pinctrl/consumer.h +++ b/include/linux/pinctrl/consumer.h | |||
@@ -82,7 +82,7 @@ static inline int pinctrl_gpio_direction_output(unsigned gpio) | |||
82 | 82 | ||
83 | static inline struct pinctrl * __must_check pinctrl_get(struct device *dev) | 83 | static inline struct pinctrl * __must_check pinctrl_get(struct device *dev) |
84 | { | 84 | { |
85 | return NULL; | 85 | return ERR_PTR(-ENOSYS); |
86 | } | 86 | } |
87 | 87 | ||
88 | static inline void pinctrl_put(struct pinctrl *p) | 88 | static inline void pinctrl_put(struct pinctrl *p) |
@@ -93,7 +93,7 @@ static inline struct pinctrl_state * __must_check pinctrl_lookup_state( | |||
93 | struct pinctrl *p, | 93 | struct pinctrl *p, |
94 | const char *name) | 94 | const char *name) |
95 | { | 95 | { |
96 | return NULL; | 96 | return ERR_PTR(-ENOSYS); |
97 | } | 97 | } |
98 | 98 | ||
99 | static inline int pinctrl_select_state(struct pinctrl *p, | 99 | static inline int pinctrl_select_state(struct pinctrl *p, |
@@ -104,7 +104,7 @@ static inline int pinctrl_select_state(struct pinctrl *p, | |||
104 | 104 | ||
105 | static inline struct pinctrl * __must_check devm_pinctrl_get(struct device *dev) | 105 | static inline struct pinctrl * __must_check devm_pinctrl_get(struct device *dev) |
106 | { | 106 | { |
107 | return NULL; | 107 | return ERR_PTR(-ENOSYS); |
108 | } | 108 | } |
109 | 109 | ||
110 | static inline void devm_pinctrl_put(struct pinctrl *p) | 110 | static inline void devm_pinctrl_put(struct pinctrl *p) |
diff --git a/include/linux/pinctrl/pinconf-generic.h b/include/linux/pinctrl/pinconf-generic.h index d578a60eff23..fe65962b264f 100644 --- a/include/linux/pinctrl/pinconf-generic.h +++ b/include/linux/pinctrl/pinconf-generic.h | |||
@@ -115,6 +115,18 @@ enum pin_config_param { | |||
115 | PIN_CONFIG_END = 0x7FFF, | 115 | PIN_CONFIG_END = 0x7FFF, |
116 | }; | 116 | }; |
117 | 117 | ||
118 | #ifdef CONFIG_DEBUG_FS | ||
119 | #define PCONFDUMP(a, b, c, d) { .param = a, .display = b, .format = c, \ | ||
120 | .has_arg = d } | ||
121 | |||
122 | struct pin_config_item { | ||
123 | const enum pin_config_param param; | ||
124 | const char * const display; | ||
125 | const char * const format; | ||
126 | bool has_arg; | ||
127 | }; | ||
128 | #endif /* CONFIG_DEBUG_FS */ | ||
129 | |||
118 | /* | 130 | /* |
119 | * Helpful configuration macro to be used in tables etc. | 131 | * Helpful configuration macro to be used in tables etc. |
120 | */ | 132 | */ |
@@ -150,6 +162,12 @@ static inline unsigned long pinconf_to_config_packed(enum pin_config_param param | |||
150 | struct pinctrl_dev; | 162 | struct pinctrl_dev; |
151 | struct pinctrl_map; | 163 | struct pinctrl_map; |
152 | 164 | ||
165 | struct pinconf_generic_params { | ||
166 | const char * const property; | ||
167 | enum pin_config_param param; | ||
168 | u32 default_value; | ||
169 | }; | ||
170 | |||
153 | int pinconf_generic_dt_subnode_to_map(struct pinctrl_dev *pctldev, | 171 | int pinconf_generic_dt_subnode_to_map(struct pinctrl_dev *pctldev, |
154 | struct device_node *np, struct pinctrl_map **map, | 172 | struct device_node *np, struct pinctrl_map **map, |
155 | unsigned *reserved_maps, unsigned *num_maps, | 173 | unsigned *reserved_maps, unsigned *num_maps, |
@@ -174,6 +192,17 @@ static inline int pinconf_generic_dt_node_to_map_pin( | |||
174 | PIN_MAP_TYPE_CONFIGS_PIN); | 192 | PIN_MAP_TYPE_CONFIGS_PIN); |
175 | } | 193 | } |
176 | 194 | ||
195 | static inline int pinconf_generic_dt_node_to_map_all( | ||
196 | struct pinctrl_dev *pctldev, struct device_node *np_config, | ||
197 | struct pinctrl_map **map, unsigned *num_maps) | ||
198 | { | ||
199 | /* | ||
200 | * passing the type as PIN_MAP_TYPE_INVALID causes the underlying parser | ||
201 | * to infer the map type from the DT properties used. | ||
202 | */ | ||
203 | return pinconf_generic_dt_node_to_map(pctldev, np_config, map, num_maps, | ||
204 | PIN_MAP_TYPE_INVALID); | ||
205 | } | ||
177 | #endif | 206 | #endif |
178 | 207 | ||
179 | #endif /* CONFIG_GENERIC_PINCONF */ | 208 | #endif /* CONFIG_GENERIC_PINCONF */ |
diff --git a/include/linux/pinctrl/pinctrl.h b/include/linux/pinctrl/pinctrl.h index cc8e1aff0e28..66e4697516de 100644 --- a/include/linux/pinctrl/pinctrl.h +++ b/include/linux/pinctrl/pinctrl.h | |||
@@ -24,6 +24,7 @@ struct pinctrl_dev; | |||
24 | struct pinctrl_map; | 24 | struct pinctrl_map; |
25 | struct pinmux_ops; | 25 | struct pinmux_ops; |
26 | struct pinconf_ops; | 26 | struct pinconf_ops; |
27 | struct pin_config_item; | ||
27 | struct gpio_chip; | 28 | struct gpio_chip; |
28 | struct device_node; | 29 | struct device_node; |
29 | 30 | ||
@@ -117,6 +118,12 @@ struct pinctrl_ops { | |||
117 | * @confops: pin config operations vtable, if you support pin configuration in | 118 | * @confops: pin config operations vtable, if you support pin configuration in |
118 | * your driver | 119 | * your driver |
119 | * @owner: module providing the pin controller, used for refcounting | 120 | * @owner: module providing the pin controller, used for refcounting |
121 | * @num_custom_params: Number of driver-specific custom parameters to be parsed | ||
122 | * from the hardware description | ||
123 | * @custom_params: List of driver_specific custom parameters to be parsed from | ||
124 | * the hardware description | ||
125 | * @custom_conf_items: Information how to print @params in debugfs, must be | ||
126 | * the same size as the @custom_params, i.e. @num_custom_params | ||
120 | */ | 127 | */ |
121 | struct pinctrl_desc { | 128 | struct pinctrl_desc { |
122 | const char *name; | 129 | const char *name; |
@@ -126,6 +133,11 @@ struct pinctrl_desc { | |||
126 | const struct pinmux_ops *pmxops; | 133 | const struct pinmux_ops *pmxops; |
127 | const struct pinconf_ops *confops; | 134 | const struct pinconf_ops *confops; |
128 | struct module *owner; | 135 | struct module *owner; |
136 | #ifdef CONFIG_GENERIC_PINCONF | ||
137 | unsigned int num_custom_params; | ||
138 | const struct pinconf_generic_params *custom_params; | ||
139 | const struct pin_config_item *custom_conf_items; | ||
140 | #endif | ||
129 | }; | 141 | }; |
130 | 142 | ||
131 | /* External interface to pin controller */ | 143 | /* External interface to pin controller */ |
diff --git a/include/linux/pstore.h b/include/linux/pstore.h index ece0c6bbfcc5..8884f6e507f7 100644 --- a/include/linux/pstore.h +++ b/include/linux/pstore.h | |||
@@ -39,6 +39,7 @@ enum pstore_type_id { | |||
39 | PSTORE_TYPE_PPC_RTAS = 4, | 39 | PSTORE_TYPE_PPC_RTAS = 4, |
40 | PSTORE_TYPE_PPC_OF = 5, | 40 | PSTORE_TYPE_PPC_OF = 5, |
41 | PSTORE_TYPE_PPC_COMMON = 6, | 41 | PSTORE_TYPE_PPC_COMMON = 6, |
42 | PSTORE_TYPE_PMSG = 7, | ||
42 | PSTORE_TYPE_UNKNOWN = 255 | 43 | PSTORE_TYPE_UNKNOWN = 255 |
43 | }; | 44 | }; |
44 | 45 | ||
diff --git a/include/linux/pstore_ram.h b/include/linux/pstore_ram.h index 4af3fdc85b01..9c9d6c154c8e 100644 --- a/include/linux/pstore_ram.h +++ b/include/linux/pstore_ram.h | |||
@@ -81,6 +81,7 @@ struct ramoops_platform_data { | |||
81 | unsigned long record_size; | 81 | unsigned long record_size; |
82 | unsigned long console_size; | 82 | unsigned long console_size; |
83 | unsigned long ftrace_size; | 83 | unsigned long ftrace_size; |
84 | unsigned long pmsg_size; | ||
84 | int dump_oops; | 85 | int dump_oops; |
85 | struct persistent_ram_ecc_info ecc_info; | 86 | struct persistent_ram_ecc_info ecc_info; |
86 | }; | 87 | }; |
diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h index d86acc63b25f..598ba80ec30c 100644 --- a/include/linux/sunrpc/clnt.h +++ b/include/linux/sunrpc/clnt.h | |||
@@ -57,7 +57,7 @@ struct rpc_clnt { | |||
57 | const struct rpc_timeout *cl_timeout; /* Timeout strategy */ | 57 | const struct rpc_timeout *cl_timeout; /* Timeout strategy */ |
58 | 58 | ||
59 | int cl_nodelen; /* nodename length */ | 59 | int cl_nodelen; /* nodename length */ |
60 | char cl_nodename[UNX_MAXNODENAME]; | 60 | char cl_nodename[UNX_MAXNODENAME+1]; |
61 | struct rpc_pipe_dir_head cl_pipedir_objects; | 61 | struct rpc_pipe_dir_head cl_pipedir_objects; |
62 | struct rpc_clnt * cl_parent; /* Points to parent of clones */ | 62 | struct rpc_clnt * cl_parent; /* Points to parent of clones */ |
63 | struct rpc_rtt cl_rtt_default; | 63 | struct rpc_rtt cl_rtt_default; |
@@ -112,6 +112,7 @@ struct rpc_create_args { | |||
112 | struct sockaddr *saddress; | 112 | struct sockaddr *saddress; |
113 | const struct rpc_timeout *timeout; | 113 | const struct rpc_timeout *timeout; |
114 | const char *servername; | 114 | const char *servername; |
115 | const char *nodename; | ||
115 | const struct rpc_program *program; | 116 | const struct rpc_program *program; |
116 | u32 prognumber; /* overrides program->number */ | 117 | u32 prognumber; /* overrides program->number */ |
117 | u32 version; | 118 | u32 version; |
diff --git a/include/linux/sunrpc/metrics.h b/include/linux/sunrpc/metrics.h index eecb5a71e6c0..7e61a17030a4 100644 --- a/include/linux/sunrpc/metrics.h +++ b/include/linux/sunrpc/metrics.h | |||
@@ -79,6 +79,8 @@ struct rpc_clnt; | |||
79 | struct rpc_iostats * rpc_alloc_iostats(struct rpc_clnt *); | 79 | struct rpc_iostats * rpc_alloc_iostats(struct rpc_clnt *); |
80 | void rpc_count_iostats(const struct rpc_task *, | 80 | void rpc_count_iostats(const struct rpc_task *, |
81 | struct rpc_iostats *); | 81 | struct rpc_iostats *); |
82 | void rpc_count_iostats_metrics(const struct rpc_task *, | ||
83 | struct rpc_iostats *); | ||
82 | void rpc_print_iostats(struct seq_file *, struct rpc_clnt *); | 84 | void rpc_print_iostats(struct seq_file *, struct rpc_clnt *); |
83 | void rpc_free_iostats(struct rpc_iostats *); | 85 | void rpc_free_iostats(struct rpc_iostats *); |
84 | 86 | ||
@@ -87,6 +89,8 @@ void rpc_free_iostats(struct rpc_iostats *); | |||
87 | static inline struct rpc_iostats *rpc_alloc_iostats(struct rpc_clnt *clnt) { return NULL; } | 89 | static inline struct rpc_iostats *rpc_alloc_iostats(struct rpc_clnt *clnt) { return NULL; } |
88 | static inline void rpc_count_iostats(const struct rpc_task *task, | 90 | static inline void rpc_count_iostats(const struct rpc_task *task, |
89 | struct rpc_iostats *stats) {} | 91 | struct rpc_iostats *stats) {} |
92 | static inline void rpc_count_iostats_metrics(const struct rpc_task *, | ||
93 | struct rpc_iostats *) {} | ||
90 | static inline void rpc_print_iostats(struct seq_file *seq, struct rpc_clnt *clnt) {} | 94 | static inline void rpc_print_iostats(struct seq_file *seq, struct rpc_clnt *clnt) {} |
91 | static inline void rpc_free_iostats(struct rpc_iostats *stats) {} | 95 | static inline void rpc_free_iostats(struct rpc_iostats *stats) {} |
92 | 96 | ||
diff --git a/include/linux/sunrpc/rpc_rdma.h b/include/linux/sunrpc/rpc_rdma.h index b78f16b1dea3..f33c5a4d6fe4 100644 --- a/include/linux/sunrpc/rpc_rdma.h +++ b/include/linux/sunrpc/rpc_rdma.h | |||
@@ -42,6 +42,9 @@ | |||
42 | 42 | ||
43 | #include <linux/types.h> | 43 | #include <linux/types.h> |
44 | 44 | ||
45 | #define RPCRDMA_VERSION 1 | ||
46 | #define rpcrdma_version cpu_to_be32(RPCRDMA_VERSION) | ||
47 | |||
45 | struct rpcrdma_segment { | 48 | struct rpcrdma_segment { |
46 | __be32 rs_handle; /* Registered memory handle */ | 49 | __be32 rs_handle; /* Registered memory handle */ |
47 | __be32 rs_length; /* Length of the chunk in bytes */ | 50 | __be32 rs_length; /* Length of the chunk in bytes */ |
@@ -95,7 +98,10 @@ struct rpcrdma_msg { | |||
95 | } rm_body; | 98 | } rm_body; |
96 | }; | 99 | }; |
97 | 100 | ||
98 | #define RPCRDMA_HDRLEN_MIN 28 | 101 | /* |
102 | * Smallest RPC/RDMA header: rm_xid through rm_type, then rm_nochunks | ||
103 | */ | ||
104 | #define RPCRDMA_HDRLEN_MIN (sizeof(__be32) * 7) | ||
99 | 105 | ||
100 | enum rpcrdma_errcode { | 106 | enum rpcrdma_errcode { |
101 | ERR_VERS = 1, | 107 | ERR_VERS = 1, |
@@ -115,4 +121,10 @@ enum rpcrdma_proc { | |||
115 | RDMA_ERROR = 4 /* An RPC RDMA encoding error */ | 121 | RDMA_ERROR = 4 /* An RPC RDMA encoding error */ |
116 | }; | 122 | }; |
117 | 123 | ||
124 | #define rdma_msg cpu_to_be32(RDMA_MSG) | ||
125 | #define rdma_nomsg cpu_to_be32(RDMA_NOMSG) | ||
126 | #define rdma_msgp cpu_to_be32(RDMA_MSGP) | ||
127 | #define rdma_done cpu_to_be32(RDMA_DONE) | ||
128 | #define rdma_error cpu_to_be32(RDMA_ERROR) | ||
129 | |||
118 | #endif /* _LINUX_SUNRPC_RPC_RDMA_H */ | 130 | #endif /* _LINUX_SUNRPC_RPC_RDMA_H */ |
diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h index 975da754c778..ddfe88f52219 100644 --- a/include/linux/sunrpc/svc_rdma.h +++ b/include/linux/sunrpc/svc_rdma.h | |||
@@ -63,8 +63,6 @@ extern atomic_t rdma_stat_rq_prod; | |||
63 | extern atomic_t rdma_stat_sq_poll; | 63 | extern atomic_t rdma_stat_sq_poll; |
64 | extern atomic_t rdma_stat_sq_prod; | 64 | extern atomic_t rdma_stat_sq_prod; |
65 | 65 | ||
66 | #define RPCRDMA_VERSION 1 | ||
67 | |||
68 | /* | 66 | /* |
69 | * Contexts are built when an RDMA request is created and are a | 67 | * Contexts are built when an RDMA request is created and are a |
70 | * record of the resources that can be recovered when the request | 68 | * record of the resources that can be recovered when the request |
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index 9d27ac45b909..8b93ef53df3c 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h | |||
@@ -347,6 +347,9 @@ void xprt_force_disconnect(struct rpc_xprt *xprt); | |||
347 | void xprt_conditional_disconnect(struct rpc_xprt *xprt, unsigned int cookie); | 347 | void xprt_conditional_disconnect(struct rpc_xprt *xprt, unsigned int cookie); |
348 | int xs_swapper(struct rpc_xprt *xprt, int enable); | 348 | int xs_swapper(struct rpc_xprt *xprt, int enable); |
349 | 349 | ||
350 | bool xprt_lock_connect(struct rpc_xprt *, struct rpc_task *, void *); | ||
351 | void xprt_unlock_connect(struct rpc_xprt *, void *); | ||
352 | |||
350 | /* | 353 | /* |
351 | * Reserved bit positions in xprt->state | 354 | * Reserved bit positions in xprt->state |
352 | */ | 355 | */ |
@@ -357,10 +360,7 @@ int xs_swapper(struct rpc_xprt *xprt, int enable); | |||
357 | #define XPRT_BOUND (4) | 360 | #define XPRT_BOUND (4) |
358 | #define XPRT_BINDING (5) | 361 | #define XPRT_BINDING (5) |
359 | #define XPRT_CLOSING (6) | 362 | #define XPRT_CLOSING (6) |
360 | #define XPRT_CONNECTION_ABORT (7) | ||
361 | #define XPRT_CONNECTION_CLOSE (8) | ||
362 | #define XPRT_CONGESTED (9) | 363 | #define XPRT_CONGESTED (9) |
363 | #define XPRT_CONNECTION_REUSE (10) | ||
364 | 364 | ||
365 | static inline void xprt_set_connected(struct rpc_xprt *xprt) | 365 | static inline void xprt_set_connected(struct rpc_xprt *xprt) |
366 | { | 366 | { |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 85893d744901..76d1e38aabe1 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
@@ -410,12 +410,16 @@ asmlinkage long sys_newlstat(const char __user *filename, | |||
410 | struct stat __user *statbuf); | 410 | struct stat __user *statbuf); |
411 | asmlinkage long sys_newfstat(unsigned int fd, struct stat __user *statbuf); | 411 | asmlinkage long sys_newfstat(unsigned int fd, struct stat __user *statbuf); |
412 | asmlinkage long sys_ustat(unsigned dev, struct ustat __user *ubuf); | 412 | asmlinkage long sys_ustat(unsigned dev, struct ustat __user *ubuf); |
413 | #if BITS_PER_LONG == 32 | 413 | #if defined(__ARCH_WANT_STAT64) || defined(__ARCH_WANT_COMPAT_STAT64) |
414 | asmlinkage long sys_stat64(const char __user *filename, | 414 | asmlinkage long sys_stat64(const char __user *filename, |
415 | struct stat64 __user *statbuf); | 415 | struct stat64 __user *statbuf); |
416 | asmlinkage long sys_fstat64(unsigned long fd, struct stat64 __user *statbuf); | 416 | asmlinkage long sys_fstat64(unsigned long fd, struct stat64 __user *statbuf); |
417 | asmlinkage long sys_lstat64(const char __user *filename, | 417 | asmlinkage long sys_lstat64(const char __user *filename, |
418 | struct stat64 __user *statbuf); | 418 | struct stat64 __user *statbuf); |
419 | asmlinkage long sys_fstatat64(int dfd, const char __user *filename, | ||
420 | struct stat64 __user *statbuf, int flag); | ||
421 | #endif | ||
422 | #if BITS_PER_LONG == 32 | ||
419 | asmlinkage long sys_truncate64(const char __user *path, loff_t length); | 423 | asmlinkage long sys_truncate64(const char __user *path, loff_t length); |
420 | asmlinkage long sys_ftruncate64(unsigned int fd, loff_t length); | 424 | asmlinkage long sys_ftruncate64(unsigned int fd, loff_t length); |
421 | #endif | 425 | #endif |
@@ -771,8 +775,6 @@ asmlinkage long sys_openat(int dfd, const char __user *filename, int flags, | |||
771 | umode_t mode); | 775 | umode_t mode); |
772 | asmlinkage long sys_newfstatat(int dfd, const char __user *filename, | 776 | asmlinkage long sys_newfstatat(int dfd, const char __user *filename, |
773 | struct stat __user *statbuf, int flag); | 777 | struct stat __user *statbuf, int flag); |
774 | asmlinkage long sys_fstatat64(int dfd, const char __user *filename, | ||
775 | struct stat64 __user *statbuf, int flag); | ||
776 | asmlinkage long sys_readlinkat(int dfd, const char __user *path, char __user *buf, | 778 | asmlinkage long sys_readlinkat(int dfd, const char __user *path, char __user *buf, |
777 | int bufsiz); | 779 | int bufsiz); |
778 | asmlinkage long sys_utimensat(int dfd, const char __user *filename, | 780 | asmlinkage long sys_utimensat(int dfd, const char __user *filename, |