diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-generic/io.h | 31 | ||||
-rw-r--r-- | include/asm-generic/mmu.h | 6 | ||||
-rw-r--r-- | include/linux/device-mapper.h | 55 | ||||
-rw-r--r-- | include/linux/mlx4/device.h | 1 | ||||
-rw-r--r-- | include/linux/page-flags.h | 8 | ||||
-rw-r--r-- | include/linux/watchdog.h | 2 | ||||
-rw-r--r-- | include/uapi/linux/dm-ioctl.h | 4 |
7 files changed, 63 insertions, 44 deletions
diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h index d1e93284d72a..33bbbae4ddc6 100644 --- a/include/asm-generic/io.h +++ b/include/asm-generic/io.h | |||
@@ -12,7 +12,6 @@ | |||
12 | #define __ASM_GENERIC_IO_H | 12 | #define __ASM_GENERIC_IO_H |
13 | 13 | ||
14 | #include <asm/page.h> /* I/O is all done through memory accesses */ | 14 | #include <asm/page.h> /* I/O is all done through memory accesses */ |
15 | #include <asm/cacheflush.h> | ||
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
17 | 16 | ||
18 | #ifdef CONFIG_GENERIC_IOMAP | 17 | #ifdef CONFIG_GENERIC_IOMAP |
@@ -223,36 +222,6 @@ static inline void outsl(unsigned long addr, const void *buffer, int count) | |||
223 | } | 222 | } |
224 | #endif | 223 | #endif |
225 | 224 | ||
226 | static inline void readsl(const void __iomem *addr, void *buf, int len) | ||
227 | { | ||
228 | insl(addr - PCI_IOBASE, buf, len); | ||
229 | } | ||
230 | |||
231 | static inline void readsw(const void __iomem *addr, void *buf, int len) | ||
232 | { | ||
233 | insw(addr - PCI_IOBASE, buf, len); | ||
234 | } | ||
235 | |||
236 | static inline void readsb(const void __iomem *addr, void *buf, int len) | ||
237 | { | ||
238 | insb(addr - PCI_IOBASE, buf, len); | ||
239 | } | ||
240 | |||
241 | static inline void writesl(const void __iomem *addr, const void *buf, int len) | ||
242 | { | ||
243 | outsl(addr - PCI_IOBASE, buf, len); | ||
244 | } | ||
245 | |||
246 | static inline void writesw(const void __iomem *addr, const void *buf, int len) | ||
247 | { | ||
248 | outsw(addr - PCI_IOBASE, buf, len); | ||
249 | } | ||
250 | |||
251 | static inline void writesb(const void __iomem *addr, const void *buf, int len) | ||
252 | { | ||
253 | outsb(addr - PCI_IOBASE, buf, len); | ||
254 | } | ||
255 | |||
256 | #ifndef CONFIG_GENERIC_IOMAP | 225 | #ifndef CONFIG_GENERIC_IOMAP |
257 | #define ioread8(addr) readb(addr) | 226 | #define ioread8(addr) readb(addr) |
258 | #define ioread16(addr) readw(addr) | 227 | #define ioread16(addr) readw(addr) |
diff --git a/include/asm-generic/mmu.h b/include/asm-generic/mmu.h index 4f4aa56d6b52..0ed3f1cfb854 100644 --- a/include/asm-generic/mmu.h +++ b/include/asm-generic/mmu.h | |||
@@ -7,8 +7,12 @@ | |||
7 | */ | 7 | */ |
8 | #ifndef __ASSEMBLY__ | 8 | #ifndef __ASSEMBLY__ |
9 | typedef struct { | 9 | typedef struct { |
10 | struct vm_list_struct *vmlist; | ||
11 | unsigned long end_brk; | 10 | unsigned long end_brk; |
11 | |||
12 | #ifdef CONFIG_BINFMT_ELF_FDPIC | ||
13 | unsigned long exec_fdpic_loadmap; | ||
14 | unsigned long interp_fdpic_loadmap; | ||
15 | #endif | ||
12 | } mm_context_t; | 16 | } mm_context_t; |
13 | #endif | 17 | #endif |
14 | 18 | ||
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h index 38d27a10aa5d..bf6afa2fc432 100644 --- a/include/linux/device-mapper.h +++ b/include/linux/device-mapper.h | |||
@@ -23,7 +23,6 @@ typedef enum { STATUSTYPE_INFO, STATUSTYPE_TABLE } status_type_t; | |||
23 | union map_info { | 23 | union map_info { |
24 | void *ptr; | 24 | void *ptr; |
25 | unsigned long long ll; | 25 | unsigned long long ll; |
26 | unsigned target_request_nr; | ||
27 | }; | 26 | }; |
28 | 27 | ||
29 | /* | 28 | /* |
@@ -46,8 +45,7 @@ typedef void (*dm_dtr_fn) (struct dm_target *ti); | |||
46 | * = 1: simple remap complete | 45 | * = 1: simple remap complete |
47 | * = 2: The target wants to push back the io | 46 | * = 2: The target wants to push back the io |
48 | */ | 47 | */ |
49 | typedef int (*dm_map_fn) (struct dm_target *ti, struct bio *bio, | 48 | typedef int (*dm_map_fn) (struct dm_target *ti, struct bio *bio); |
50 | union map_info *map_context); | ||
51 | typedef int (*dm_map_request_fn) (struct dm_target *ti, struct request *clone, | 49 | typedef int (*dm_map_request_fn) (struct dm_target *ti, struct request *clone, |
52 | union map_info *map_context); | 50 | union map_info *map_context); |
53 | 51 | ||
@@ -60,8 +58,7 @@ typedef int (*dm_map_request_fn) (struct dm_target *ti, struct request *clone, | |||
60 | * 2 : The target wants to push back the io | 58 | * 2 : The target wants to push back the io |
61 | */ | 59 | */ |
62 | typedef int (*dm_endio_fn) (struct dm_target *ti, | 60 | typedef int (*dm_endio_fn) (struct dm_target *ti, |
63 | struct bio *bio, int error, | 61 | struct bio *bio, int error); |
64 | union map_info *map_context); | ||
65 | typedef int (*dm_request_endio_fn) (struct dm_target *ti, | 62 | typedef int (*dm_request_endio_fn) (struct dm_target *ti, |
66 | struct request *clone, int error, | 63 | struct request *clone, int error, |
67 | union map_info *map_context); | 64 | union map_info *map_context); |
@@ -193,18 +190,30 @@ struct dm_target { | |||
193 | * A number of zero-length barrier requests that will be submitted | 190 | * A number of zero-length barrier requests that will be submitted |
194 | * to the target for the purpose of flushing cache. | 191 | * to the target for the purpose of flushing cache. |
195 | * | 192 | * |
196 | * The request number will be placed in union map_info->target_request_nr. | 193 | * The request number can be accessed with dm_bio_get_target_request_nr. |
197 | * It is a responsibility of the target driver to remap these requests | 194 | * It is a responsibility of the target driver to remap these requests |
198 | * to the real underlying devices. | 195 | * to the real underlying devices. |
199 | */ | 196 | */ |
200 | unsigned num_flush_requests; | 197 | unsigned num_flush_requests; |
201 | 198 | ||
202 | /* | 199 | /* |
203 | * The number of discard requests that will be submitted to the | 200 | * The number of discard requests that will be submitted to the target. |
204 | * target. map_info->request_nr is used just like num_flush_requests. | 201 | * The request number can be accessed with dm_bio_get_target_request_nr. |
205 | */ | 202 | */ |
206 | unsigned num_discard_requests; | 203 | unsigned num_discard_requests; |
207 | 204 | ||
205 | /* | ||
206 | * The number of WRITE SAME requests that will be submitted to the target. | ||
207 | * The request number can be accessed with dm_bio_get_target_request_nr. | ||
208 | */ | ||
209 | unsigned num_write_same_requests; | ||
210 | |||
211 | /* | ||
212 | * The minimum number of extra bytes allocated in each bio for the | ||
213 | * target to use. dm_per_bio_data returns the data location. | ||
214 | */ | ||
215 | unsigned per_bio_data_size; | ||
216 | |||
208 | /* target specific data */ | 217 | /* target specific data */ |
209 | void *private; | 218 | void *private; |
210 | 219 | ||
@@ -241,6 +250,36 @@ struct dm_target_callbacks { | |||
241 | int (*congested_fn) (struct dm_target_callbacks *, int); | 250 | int (*congested_fn) (struct dm_target_callbacks *, int); |
242 | }; | 251 | }; |
243 | 252 | ||
253 | /* | ||
254 | * For bio-based dm. | ||
255 | * One of these is allocated for each bio. | ||
256 | * This structure shouldn't be touched directly by target drivers. | ||
257 | * It is here so that we can inline dm_per_bio_data and | ||
258 | * dm_bio_from_per_bio_data | ||
259 | */ | ||
260 | struct dm_target_io { | ||
261 | struct dm_io *io; | ||
262 | struct dm_target *ti; | ||
263 | union map_info info; | ||
264 | unsigned target_request_nr; | ||
265 | struct bio clone; | ||
266 | }; | ||
267 | |||
268 | static inline void *dm_per_bio_data(struct bio *bio, size_t data_size) | ||
269 | { | ||
270 | return (char *)bio - offsetof(struct dm_target_io, clone) - data_size; | ||
271 | } | ||
272 | |||
273 | static inline struct bio *dm_bio_from_per_bio_data(void *data, size_t data_size) | ||
274 | { | ||
275 | return (struct bio *)((char *)data + data_size + offsetof(struct dm_target_io, clone)); | ||
276 | } | ||
277 | |||
278 | static inline unsigned dm_bio_get_target_request_nr(const struct bio *bio) | ||
279 | { | ||
280 | return container_of(bio, struct dm_target_io, clone)->target_request_nr; | ||
281 | } | ||
282 | |||
244 | int dm_register_target(struct target_type *t); | 283 | int dm_register_target(struct target_type *t); |
245 | void dm_unregister_target(struct target_type *t); | 284 | void dm_unregister_target(struct target_type *t); |
246 | 285 | ||
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h index 21821da2abfd..20ea939c22a6 100644 --- a/include/linux/mlx4/device.h +++ b/include/linux/mlx4/device.h | |||
@@ -625,6 +625,7 @@ struct mlx4_dev { | |||
625 | u8 rev_id; | 625 | u8 rev_id; |
626 | char board_id[MLX4_BOARD_ID_LEN]; | 626 | char board_id[MLX4_BOARD_ID_LEN]; |
627 | int num_vfs; | 627 | int num_vfs; |
628 | int oper_log_mgm_entry_size; | ||
628 | u64 regid_promisc_array[MLX4_MAX_PORTS + 1]; | 629 | u64 regid_promisc_array[MLX4_MAX_PORTS + 1]; |
629 | u64 regid_allmulti_array[MLX4_MAX_PORTS + 1]; | 630 | u64 regid_allmulti_array[MLX4_MAX_PORTS + 1]; |
630 | }; | 631 | }; |
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index b5d13841604e..70473da47b3f 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h | |||
@@ -362,7 +362,7 @@ static inline void ClearPageCompound(struct page *page) | |||
362 | * pages on the LRU and/or pagecache. | 362 | * pages on the LRU and/or pagecache. |
363 | */ | 363 | */ |
364 | TESTPAGEFLAG(Compound, compound) | 364 | TESTPAGEFLAG(Compound, compound) |
365 | __PAGEFLAG(Head, compound) | 365 | __SETPAGEFLAG(Head, compound) __CLEARPAGEFLAG(Head, compound) |
366 | 366 | ||
367 | /* | 367 | /* |
368 | * PG_reclaim is used in combination with PG_compound to mark the | 368 | * PG_reclaim is used in combination with PG_compound to mark the |
@@ -374,8 +374,14 @@ __PAGEFLAG(Head, compound) | |||
374 | * PG_compound & PG_reclaim => Tail page | 374 | * PG_compound & PG_reclaim => Tail page |
375 | * PG_compound & ~PG_reclaim => Head page | 375 | * PG_compound & ~PG_reclaim => Head page |
376 | */ | 376 | */ |
377 | #define PG_head_mask ((1L << PG_compound)) | ||
377 | #define PG_head_tail_mask ((1L << PG_compound) | (1L << PG_reclaim)) | 378 | #define PG_head_tail_mask ((1L << PG_compound) | (1L << PG_reclaim)) |
378 | 379 | ||
380 | static inline int PageHead(struct page *page) | ||
381 | { | ||
382 | return ((page->flags & PG_head_tail_mask) == PG_head_mask); | ||
383 | } | ||
384 | |||
379 | static inline int PageTail(struct page *page) | 385 | static inline int PageTail(struct page *page) |
380 | { | 386 | { |
381 | return ((page->flags & PG_head_tail_mask) == PG_head_tail_mask); | 387 | return ((page->flags & PG_head_tail_mask) == PG_head_tail_mask); |
diff --git a/include/linux/watchdog.h b/include/linux/watchdog.h index 87490ac4bd87..3a9df2f43be6 100644 --- a/include/linux/watchdog.h +++ b/include/linux/watchdog.h | |||
@@ -129,7 +129,7 @@ static inline void *watchdog_get_drvdata(struct watchdog_device *wdd) | |||
129 | return wdd->driver_data; | 129 | return wdd->driver_data; |
130 | } | 130 | } |
131 | 131 | ||
132 | /* drivers/watchdog/core/watchdog_core.c */ | 132 | /* drivers/watchdog/watchdog_core.c */ |
133 | extern int watchdog_register_device(struct watchdog_device *); | 133 | extern int watchdog_register_device(struct watchdog_device *); |
134 | extern void watchdog_unregister_device(struct watchdog_device *); | 134 | extern void watchdog_unregister_device(struct watchdog_device *); |
135 | 135 | ||
diff --git a/include/uapi/linux/dm-ioctl.h b/include/uapi/linux/dm-ioctl.h index 91e3a360f611..539b179b349c 100644 --- a/include/uapi/linux/dm-ioctl.h +++ b/include/uapi/linux/dm-ioctl.h | |||
@@ -268,8 +268,8 @@ enum { | |||
268 | 268 | ||
269 | #define DM_VERSION_MAJOR 4 | 269 | #define DM_VERSION_MAJOR 4 |
270 | #define DM_VERSION_MINOR 23 | 270 | #define DM_VERSION_MINOR 23 |
271 | #define DM_VERSION_PATCHLEVEL 0 | 271 | #define DM_VERSION_PATCHLEVEL 1 |
272 | #define DM_VERSION_EXTRA "-ioctl (2012-07-25)" | 272 | #define DM_VERSION_EXTRA "-ioctl (2012-12-18)" |
273 | 273 | ||
274 | /* Status bits */ | 274 | /* Status bits */ |
275 | #define DM_READONLY_FLAG (1 << 0) /* In/Out */ | 275 | #define DM_READONLY_FLAG (1 << 0) /* In/Out */ |