diff options
Diffstat (limited to 'include/linux')
30 files changed, 207 insertions, 86 deletions
diff --git a/include/linux/basic_mmio_gpio.h b/include/linux/basic_mmio_gpio.h index 98999cf107ce..feb912196745 100644 --- a/include/linux/basic_mmio_gpio.h +++ b/include/linux/basic_mmio_gpio.h | |||
| @@ -63,15 +63,10 @@ static inline struct bgpio_chip *to_bgpio_chip(struct gpio_chip *gc) | |||
| 63 | return container_of(gc, struct bgpio_chip, gc); | 63 | return container_of(gc, struct bgpio_chip, gc); |
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | int __devexit bgpio_remove(struct bgpio_chip *bgc); | 66 | int bgpio_remove(struct bgpio_chip *bgc); |
| 67 | int __devinit bgpio_init(struct bgpio_chip *bgc, | 67 | int bgpio_init(struct bgpio_chip *bgc, struct device *dev, |
| 68 | struct device *dev, | 68 | unsigned long sz, void __iomem *dat, void __iomem *set, |
| 69 | unsigned long sz, | 69 | void __iomem *clr, void __iomem *dirout, void __iomem *dirin, |
| 70 | void __iomem *dat, | 70 | bool big_endian); |
| 71 | void __iomem *set, | ||
| 72 | void __iomem *clr, | ||
| 73 | void __iomem *dirout, | ||
| 74 | void __iomem *dirin, | ||
| 75 | bool big_endian); | ||
| 76 | 71 | ||
| 77 | #endif /* __BASIC_MMIO_GPIO_H */ | 72 | #endif /* __BASIC_MMIO_GPIO_H */ |
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h index 6395692b2e7a..71fc53bb8f1c 100644 --- a/include/linux/blk_types.h +++ b/include/linux/blk_types.h | |||
| @@ -124,8 +124,13 @@ enum rq_flag_bits { | |||
| 124 | 124 | ||
| 125 | __REQ_SYNC, /* request is sync (sync write or read) */ | 125 | __REQ_SYNC, /* request is sync (sync write or read) */ |
| 126 | __REQ_META, /* metadata io request */ | 126 | __REQ_META, /* metadata io request */ |
| 127 | __REQ_PRIO, /* boost priority in cfq */ | ||
| 127 | __REQ_DISCARD, /* request to discard sectors */ | 128 | __REQ_DISCARD, /* request to discard sectors */ |
| 129 | __REQ_SECURE, /* secure discard (used with __REQ_DISCARD) */ | ||
| 130 | |||
| 128 | __REQ_NOIDLE, /* don't anticipate more IO after this one */ | 131 | __REQ_NOIDLE, /* don't anticipate more IO after this one */ |
| 132 | __REQ_FUA, /* forced unit access */ | ||
| 133 | __REQ_FLUSH, /* request for cache flush */ | ||
| 129 | 134 | ||
| 130 | /* bio only flags */ | 135 | /* bio only flags */ |
| 131 | __REQ_RAHEAD, /* read ahead, can fail anytime */ | 136 | __REQ_RAHEAD, /* read ahead, can fail anytime */ |
| @@ -135,7 +140,6 @@ enum rq_flag_bits { | |||
| 135 | /* request only flags */ | 140 | /* request only flags */ |
| 136 | __REQ_SORTED, /* elevator knows about this request */ | 141 | __REQ_SORTED, /* elevator knows about this request */ |
| 137 | __REQ_SOFTBARRIER, /* may not be passed by ioscheduler */ | 142 | __REQ_SOFTBARRIER, /* may not be passed by ioscheduler */ |
| 138 | __REQ_FUA, /* forced unit access */ | ||
| 139 | __REQ_NOMERGE, /* don't touch this for merging */ | 143 | __REQ_NOMERGE, /* don't touch this for merging */ |
| 140 | __REQ_STARTED, /* drive already may have started this one */ | 144 | __REQ_STARTED, /* drive already may have started this one */ |
| 141 | __REQ_DONTPREP, /* don't call prep for this one */ | 145 | __REQ_DONTPREP, /* don't call prep for this one */ |
| @@ -146,11 +150,9 @@ enum rq_flag_bits { | |||
| 146 | __REQ_PREEMPT, /* set for "ide_preempt" requests */ | 150 | __REQ_PREEMPT, /* set for "ide_preempt" requests */ |
| 147 | __REQ_ALLOCED, /* request came from our alloc pool */ | 151 | __REQ_ALLOCED, /* request came from our alloc pool */ |
| 148 | __REQ_COPY_USER, /* contains copies of user pages */ | 152 | __REQ_COPY_USER, /* contains copies of user pages */ |
| 149 | __REQ_FLUSH, /* request for cache flush */ | ||
| 150 | __REQ_FLUSH_SEQ, /* request for flush sequence */ | 153 | __REQ_FLUSH_SEQ, /* request for flush sequence */ |
| 151 | __REQ_IO_STAT, /* account I/O stat */ | 154 | __REQ_IO_STAT, /* account I/O stat */ |
| 152 | __REQ_MIXED_MERGE, /* merge of different types, fail separately */ | 155 | __REQ_MIXED_MERGE, /* merge of different types, fail separately */ |
| 153 | __REQ_SECURE, /* secure discard (used with __REQ_DISCARD) */ | ||
| 154 | __REQ_NR_BITS, /* stops here */ | 156 | __REQ_NR_BITS, /* stops here */ |
| 155 | }; | 157 | }; |
| 156 | 158 | ||
| @@ -160,14 +162,15 @@ enum rq_flag_bits { | |||
| 160 | #define REQ_FAILFAST_DRIVER (1 << __REQ_FAILFAST_DRIVER) | 162 | #define REQ_FAILFAST_DRIVER (1 << __REQ_FAILFAST_DRIVER) |
| 161 | #define REQ_SYNC (1 << __REQ_SYNC) | 163 | #define REQ_SYNC (1 << __REQ_SYNC) |
| 162 | #define REQ_META (1 << __REQ_META) | 164 | #define REQ_META (1 << __REQ_META) |
| 165 | #define REQ_PRIO (1 << __REQ_PRIO) | ||
| 163 | #define REQ_DISCARD (1 << __REQ_DISCARD) | 166 | #define REQ_DISCARD (1 << __REQ_DISCARD) |
| 164 | #define REQ_NOIDLE (1 << __REQ_NOIDLE) | 167 | #define REQ_NOIDLE (1 << __REQ_NOIDLE) |
| 165 | 168 | ||
| 166 | #define REQ_FAILFAST_MASK \ | 169 | #define REQ_FAILFAST_MASK \ |
| 167 | (REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT | REQ_FAILFAST_DRIVER) | 170 | (REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT | REQ_FAILFAST_DRIVER) |
| 168 | #define REQ_COMMON_MASK \ | 171 | #define REQ_COMMON_MASK \ |
| 169 | (REQ_WRITE | REQ_FAILFAST_MASK | REQ_SYNC | REQ_META | REQ_DISCARD | \ | 172 | (REQ_WRITE | REQ_FAILFAST_MASK | REQ_SYNC | REQ_META | REQ_PRIO | \ |
| 170 | REQ_NOIDLE | REQ_FLUSH | REQ_FUA | REQ_SECURE) | 173 | REQ_DISCARD | REQ_NOIDLE | REQ_FLUSH | REQ_FUA | REQ_SECURE) |
| 171 | #define REQ_CLONE_MASK REQ_COMMON_MASK | 174 | #define REQ_CLONE_MASK REQ_COMMON_MASK |
| 172 | 175 | ||
| 173 | #define REQ_RAHEAD (1 << __REQ_RAHEAD) | 176 | #define REQ_RAHEAD (1 << __REQ_RAHEAD) |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 0e67c45b3bc9..7fbaa9103344 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -30,6 +30,7 @@ struct request_pm_state; | |||
| 30 | struct blk_trace; | 30 | struct blk_trace; |
| 31 | struct request; | 31 | struct request; |
| 32 | struct sg_io_hdr; | 32 | struct sg_io_hdr; |
| 33 | struct bsg_job; | ||
| 33 | 34 | ||
| 34 | #define BLKDEV_MIN_RQ 4 | 35 | #define BLKDEV_MIN_RQ 4 |
| 35 | #define BLKDEV_MAX_RQ 128 /* Default maximum */ | 36 | #define BLKDEV_MAX_RQ 128 /* Default maximum */ |
| @@ -117,6 +118,7 @@ struct request { | |||
| 117 | struct { | 118 | struct { |
| 118 | unsigned int seq; | 119 | unsigned int seq; |
| 119 | struct list_head list; | 120 | struct list_head list; |
| 121 | rq_end_io_fn *saved_end_io; | ||
| 120 | } flush; | 122 | } flush; |
| 121 | }; | 123 | }; |
| 122 | 124 | ||
| @@ -209,6 +211,7 @@ typedef int (merge_bvec_fn) (struct request_queue *, struct bvec_merge_data *, | |||
| 209 | typedef void (softirq_done_fn)(struct request *); | 211 | typedef void (softirq_done_fn)(struct request *); |
| 210 | typedef int (dma_drain_needed_fn)(struct request *); | 212 | typedef int (dma_drain_needed_fn)(struct request *); |
| 211 | typedef int (lld_busy_fn) (struct request_queue *q); | 213 | typedef int (lld_busy_fn) (struct request_queue *q); |
| 214 | typedef int (bsg_job_fn) (struct bsg_job *); | ||
| 212 | 215 | ||
| 213 | enum blk_eh_timer_return { | 216 | enum blk_eh_timer_return { |
| 214 | BLK_EH_NOT_HANDLED, | 217 | BLK_EH_NOT_HANDLED, |
| @@ -375,6 +378,8 @@ struct request_queue { | |||
| 375 | struct mutex sysfs_lock; | 378 | struct mutex sysfs_lock; |
| 376 | 379 | ||
| 377 | #if defined(CONFIG_BLK_DEV_BSG) | 380 | #if defined(CONFIG_BLK_DEV_BSG) |
| 381 | bsg_job_fn *bsg_job_fn; | ||
| 382 | int bsg_job_size; | ||
| 378 | struct bsg_class_device bsg_dev; | 383 | struct bsg_class_device bsg_dev; |
| 379 | #endif | 384 | #endif |
| 380 | 385 | ||
| @@ -868,7 +873,6 @@ struct blk_plug { | |||
| 868 | struct list_head list; | 873 | struct list_head list; |
| 869 | struct list_head cb_list; | 874 | struct list_head cb_list; |
| 870 | unsigned int should_sort; | 875 | unsigned int should_sort; |
| 871 | unsigned int count; | ||
| 872 | }; | 876 | }; |
| 873 | #define BLK_MAX_REQUEST_COUNT 16 | 877 | #define BLK_MAX_REQUEST_COUNT 16 |
| 874 | 878 | ||
diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h index 8c7c2de7631a..8e9e4bc6d73b 100644 --- a/include/linux/blktrace_api.h +++ b/include/linux/blktrace_api.h | |||
| @@ -14,7 +14,7 @@ | |||
| 14 | enum blktrace_cat { | 14 | enum blktrace_cat { |
| 15 | BLK_TC_READ = 1 << 0, /* reads */ | 15 | BLK_TC_READ = 1 << 0, /* reads */ |
| 16 | BLK_TC_WRITE = 1 << 1, /* writes */ | 16 | BLK_TC_WRITE = 1 << 1, /* writes */ |
| 17 | BLK_TC_BARRIER = 1 << 2, /* barrier */ | 17 | BLK_TC_FLUSH = 1 << 2, /* flush */ |
| 18 | BLK_TC_SYNC = 1 << 3, /* sync IO */ | 18 | BLK_TC_SYNC = 1 << 3, /* sync IO */ |
| 19 | BLK_TC_SYNCIO = BLK_TC_SYNC, | 19 | BLK_TC_SYNCIO = BLK_TC_SYNC, |
| 20 | BLK_TC_QUEUE = 1 << 4, /* queueing/merging */ | 20 | BLK_TC_QUEUE = 1 << 4, /* queueing/merging */ |
| @@ -28,8 +28,9 @@ enum blktrace_cat { | |||
| 28 | BLK_TC_META = 1 << 12, /* metadata */ | 28 | BLK_TC_META = 1 << 12, /* metadata */ |
| 29 | BLK_TC_DISCARD = 1 << 13, /* discard requests */ | 29 | BLK_TC_DISCARD = 1 << 13, /* discard requests */ |
| 30 | BLK_TC_DRV_DATA = 1 << 14, /* binary per-driver data */ | 30 | BLK_TC_DRV_DATA = 1 << 14, /* binary per-driver data */ |
| 31 | BLK_TC_FUA = 1 << 15, /* fua requests */ | ||
| 31 | 32 | ||
| 32 | BLK_TC_END = 1 << 15, /* only 16-bits, reminder */ | 33 | BLK_TC_END = 1 << 15, /* we've run out of bits! */ |
| 33 | }; | 34 | }; |
| 34 | 35 | ||
| 35 | #define BLK_TC_SHIFT (16) | 36 | #define BLK_TC_SHIFT (16) |
diff --git a/include/linux/bsg-lib.h b/include/linux/bsg-lib.h new file mode 100644 index 000000000000..f55ab8cdc106 --- /dev/null +++ b/include/linux/bsg-lib.h | |||
| @@ -0,0 +1,73 @@ | |||
| 1 | /* | ||
| 2 | * BSG helper library | ||
| 3 | * | ||
| 4 | * Copyright (C) 2008 James Smart, Emulex Corporation | ||
| 5 | * Copyright (C) 2011 Red Hat, Inc. All rights reserved. | ||
| 6 | * Copyright (C) 2011 Mike Christie | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License as published by | ||
| 10 | * the Free Software Foundation; either version 2 of the License, or | ||
| 11 | * (at your option) any later version. | ||
| 12 | * | ||
| 13 | * This program is distributed in the hope that it will be useful, | ||
| 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 16 | * GNU General Public License for more details. | ||
| 17 | * | ||
| 18 | * You should have received a copy of the GNU General Public License | ||
| 19 | * along with this program; if not, write to the Free Software | ||
| 20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
| 21 | * | ||
| 22 | */ | ||
| 23 | #ifndef _BLK_BSG_ | ||
| 24 | #define _BLK_BSG_ | ||
| 25 | |||
| 26 | #include <linux/blkdev.h> | ||
| 27 | |||
| 28 | struct request; | ||
| 29 | struct device; | ||
| 30 | struct scatterlist; | ||
| 31 | struct request_queue; | ||
| 32 | |||
| 33 | struct bsg_buffer { | ||
| 34 | unsigned int payload_len; | ||
| 35 | int sg_cnt; | ||
| 36 | struct scatterlist *sg_list; | ||
| 37 | }; | ||
| 38 | |||
| 39 | struct bsg_job { | ||
| 40 | struct device *dev; | ||
| 41 | struct request *req; | ||
| 42 | |||
| 43 | /* Transport/driver specific request/reply structs */ | ||
| 44 | void *request; | ||
| 45 | void *reply; | ||
| 46 | |||
| 47 | unsigned int request_len; | ||
| 48 | unsigned int reply_len; | ||
| 49 | /* | ||
| 50 | * On entry : reply_len indicates the buffer size allocated for | ||
| 51 | * the reply. | ||
| 52 | * | ||
| 53 | * Upon completion : the message handler must set reply_len | ||
| 54 | * to indicates the size of the reply to be returned to the | ||
| 55 | * caller. | ||
| 56 | */ | ||
| 57 | |||
| 58 | /* DMA payloads for the request/response */ | ||
| 59 | struct bsg_buffer request_payload; | ||
| 60 | struct bsg_buffer reply_payload; | ||
| 61 | |||
| 62 | void *dd_data; /* Used for driver-specific storage */ | ||
| 63 | }; | ||
| 64 | |||
| 65 | void bsg_job_done(struct bsg_job *job, int result, | ||
| 66 | unsigned int reply_payload_rcv_len); | ||
| 67 | int bsg_setup_queue(struct device *dev, struct request_queue *q, char *name, | ||
| 68 | bsg_job_fn *job_fn, int dd_job_size); | ||
| 69 | void bsg_request_fn(struct request_queue *q); | ||
| 70 | void bsg_remove_queue(struct request_queue *q); | ||
| 71 | void bsg_goose_queue(struct request_queue *q); | ||
| 72 | |||
| 73 | #endif | ||
diff --git a/include/linux/compat.h b/include/linux/compat.h index 8779405e15a8..c6e7523bf765 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
| @@ -438,7 +438,6 @@ asmlinkage long compat_sys_ppoll(struct pollfd __user *ufds, | |||
| 438 | struct compat_timespec __user *tsp, | 438 | struct compat_timespec __user *tsp, |
| 439 | const compat_sigset_t __user *sigmask, | 439 | const compat_sigset_t __user *sigmask, |
| 440 | compat_size_t sigsetsize); | 440 | compat_size_t sigsetsize); |
| 441 | asmlinkage long compat_sys_nfsservctl(int cmd, void *notused, void *notused2); | ||
| 442 | asmlinkage long compat_sys_signalfd4(int ufd, | 441 | asmlinkage long compat_sys_signalfd4(int ufd, |
| 443 | const compat_sigset_t __user *sigmask, | 442 | const compat_sigset_t __user *sigmask, |
| 444 | compat_size_t sigsetsize, int flags); | 443 | compat_size_t sigsetsize, int flags); |
diff --git a/include/linux/connector.h b/include/linux/connector.h index 0c69ad825b39..3c9c54fd5690 100644 --- a/include/linux/connector.h +++ b/include/linux/connector.h | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * connector.h | 2 | * connector.h |
| 3 | * | 3 | * |
| 4 | * 2004-2005 Copyright (c) Evgeniy Polyakov <johnpol@2ka.mipt.ru> | 4 | * 2004-2005 Copyright (c) Evgeniy Polyakov <zbr@ioremap.net> |
| 5 | * All rights reserved. | 5 | * All rights reserved. |
| 6 | * | 6 | * |
| 7 | * This program is free software; you can redistribute it and/or modify | 7 | * This program is free software; you can redistribute it and/or modify |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 178cdb4f1d4a..277f497923a2 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -162,10 +162,8 @@ struct inodes_stat_t { | |||
| 162 | #define READA RWA_MASK | 162 | #define READA RWA_MASK |
| 163 | 163 | ||
| 164 | #define READ_SYNC (READ | REQ_SYNC) | 164 | #define READ_SYNC (READ | REQ_SYNC) |
| 165 | #define READ_META (READ | REQ_META) | ||
| 166 | #define WRITE_SYNC (WRITE | REQ_SYNC | REQ_NOIDLE) | 165 | #define WRITE_SYNC (WRITE | REQ_SYNC | REQ_NOIDLE) |
| 167 | #define WRITE_ODIRECT (WRITE | REQ_SYNC) | 166 | #define WRITE_ODIRECT (WRITE | REQ_SYNC) |
| 168 | #define WRITE_META (WRITE | REQ_META) | ||
| 169 | #define WRITE_FLUSH (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_FLUSH) | 167 | #define WRITE_FLUSH (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_FLUSH) |
| 170 | #define WRITE_FUA (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_FUA) | 168 | #define WRITE_FUA (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_FUA) |
| 171 | #define WRITE_FLUSH_FUA (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_FLUSH | REQ_FUA) | 169 | #define WRITE_FLUSH_FUA (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_FLUSH | REQ_FUA) |
| @@ -2318,6 +2316,11 @@ extern struct inode * iget5_locked(struct super_block *, unsigned long, int (*te | |||
| 2318 | extern struct inode * iget_locked(struct super_block *, unsigned long); | 2316 | extern struct inode * iget_locked(struct super_block *, unsigned long); |
| 2319 | extern int insert_inode_locked4(struct inode *, unsigned long, int (*test)(struct inode *, void *), void *); | 2317 | extern int insert_inode_locked4(struct inode *, unsigned long, int (*test)(struct inode *, void *), void *); |
| 2320 | extern int insert_inode_locked(struct inode *); | 2318 | extern int insert_inode_locked(struct inode *); |
| 2319 | #ifdef CONFIG_DEBUG_LOCK_ALLOC | ||
| 2320 | extern void lockdep_annotate_inode_mutex_key(struct inode *inode); | ||
| 2321 | #else | ||
| 2322 | static inline void lockdep_annotate_inode_mutex_key(struct inode *inode) { }; | ||
| 2323 | #endif | ||
| 2321 | extern void unlock_new_inode(struct inode *); | 2324 | extern void unlock_new_inode(struct inode *); |
| 2322 | extern unsigned int get_next_ino(void); | 2325 | extern unsigned int get_next_ino(void); |
| 2323 | 2326 | ||
diff --git a/include/linux/fuse.h b/include/linux/fuse.h index d464de53db43..464cff526860 100644 --- a/include/linux/fuse.h +++ b/include/linux/fuse.h | |||
| @@ -47,6 +47,9 @@ | |||
| 47 | * - FUSE_IOCTL_UNRESTRICTED shall now return with array of 'struct | 47 | * - FUSE_IOCTL_UNRESTRICTED shall now return with array of 'struct |
| 48 | * fuse_ioctl_iovec' instead of ambiguous 'struct iovec' | 48 | * fuse_ioctl_iovec' instead of ambiguous 'struct iovec' |
| 49 | * - add FUSE_IOCTL_32BIT flag | 49 | * - add FUSE_IOCTL_32BIT flag |
| 50 | * | ||
| 51 | * 7.17 | ||
| 52 | * - add FUSE_FLOCK_LOCKS and FUSE_RELEASE_FLOCK_UNLOCK | ||
| 50 | */ | 53 | */ |
| 51 | 54 | ||
| 52 | #ifndef _LINUX_FUSE_H | 55 | #ifndef _LINUX_FUSE_H |
| @@ -78,7 +81,7 @@ | |||
| 78 | #define FUSE_KERNEL_VERSION 7 | 81 | #define FUSE_KERNEL_VERSION 7 |
| 79 | 82 | ||
| 80 | /** Minor version number of this interface */ | 83 | /** Minor version number of this interface */ |
| 81 | #define FUSE_KERNEL_MINOR_VERSION 16 | 84 | #define FUSE_KERNEL_MINOR_VERSION 17 |
| 82 | 85 | ||
| 83 | /** The node ID of the root inode */ | 86 | /** The node ID of the root inode */ |
| 84 | #define FUSE_ROOT_ID 1 | 87 | #define FUSE_ROOT_ID 1 |
| @@ -153,8 +156,10 @@ struct fuse_file_lock { | |||
| 153 | /** | 156 | /** |
| 154 | * INIT request/reply flags | 157 | * INIT request/reply flags |
| 155 | * | 158 | * |
| 159 | * FUSE_POSIX_LOCKS: remote locking for POSIX file locks | ||
| 156 | * FUSE_EXPORT_SUPPORT: filesystem handles lookups of "." and ".." | 160 | * FUSE_EXPORT_SUPPORT: filesystem handles lookups of "." and ".." |
| 157 | * FUSE_DONT_MASK: don't apply umask to file mode on create operations | 161 | * FUSE_DONT_MASK: don't apply umask to file mode on create operations |
| 162 | * FUSE_FLOCK_LOCKS: remote locking for BSD style file locks | ||
| 158 | */ | 163 | */ |
| 159 | #define FUSE_ASYNC_READ (1 << 0) | 164 | #define FUSE_ASYNC_READ (1 << 0) |
| 160 | #define FUSE_POSIX_LOCKS (1 << 1) | 165 | #define FUSE_POSIX_LOCKS (1 << 1) |
| @@ -163,6 +168,7 @@ struct fuse_file_lock { | |||
| 163 | #define FUSE_EXPORT_SUPPORT (1 << 4) | 168 | #define FUSE_EXPORT_SUPPORT (1 << 4) |
| 164 | #define FUSE_BIG_WRITES (1 << 5) | 169 | #define FUSE_BIG_WRITES (1 << 5) |
| 165 | #define FUSE_DONT_MASK (1 << 6) | 170 | #define FUSE_DONT_MASK (1 << 6) |
| 171 | #define FUSE_FLOCK_LOCKS (1 << 10) | ||
| 166 | 172 | ||
| 167 | /** | 173 | /** |
| 168 | * CUSE INIT request/reply flags | 174 | * CUSE INIT request/reply flags |
| @@ -175,6 +181,7 @@ struct fuse_file_lock { | |||
| 175 | * Release flags | 181 | * Release flags |
| 176 | */ | 182 | */ |
| 177 | #define FUSE_RELEASE_FLUSH (1 << 0) | 183 | #define FUSE_RELEASE_FLUSH (1 << 0) |
| 184 | #define FUSE_RELEASE_FLOCK_UNLOCK (1 << 1) | ||
| 178 | 185 | ||
| 179 | /** | 186 | /** |
| 180 | * Getattr flags | 187 | * Getattr flags |
diff --git a/include/linux/hash.h b/include/linux/hash.h index 06d25c189cc5..b80506bdd733 100644 --- a/include/linux/hash.h +++ b/include/linux/hash.h | |||
| @@ -63,7 +63,7 @@ static inline u32 hash_32(u32 val, unsigned int bits) | |||
| 63 | return hash >> (32 - bits); | 63 | return hash >> (32 - bits); |
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | static inline unsigned long hash_ptr(void *ptr, unsigned int bits) | 66 | static inline unsigned long hash_ptr(const void *ptr, unsigned int bits) |
| 67 | { | 67 | { |
| 68 | return hash_long((unsigned long)ptr, bits); | 68 | return hash_long((unsigned long)ptr, bits); |
| 69 | } | 69 | } |
diff --git a/include/linux/loop.h b/include/linux/loop.h index 66c194e2d9b9..683d69890119 100644 --- a/include/linux/loop.h +++ b/include/linux/loop.h | |||
| @@ -64,7 +64,6 @@ struct loop_device { | |||
| 64 | 64 | ||
| 65 | struct request_queue *lo_queue; | 65 | struct request_queue *lo_queue; |
| 66 | struct gendisk *lo_disk; | 66 | struct gendisk *lo_disk; |
| 67 | struct list_head lo_list; | ||
| 68 | }; | 67 | }; |
| 69 | 68 | ||
| 70 | #endif /* __KERNEL__ */ | 69 | #endif /* __KERNEL__ */ |
| @@ -161,4 +160,8 @@ int loop_unregister_transfer(int number); | |||
| 161 | #define LOOP_CHANGE_FD 0x4C06 | 160 | #define LOOP_CHANGE_FD 0x4C06 |
| 162 | #define LOOP_SET_CAPACITY 0x4C07 | 161 | #define LOOP_SET_CAPACITY 0x4C07 |
| 163 | 162 | ||
| 163 | /* /dev/loop-control interface */ | ||
| 164 | #define LOOP_CTL_ADD 0x4C80 | ||
| 165 | #define LOOP_CTL_REMOVE 0x4C81 | ||
| 166 | #define LOOP_CTL_GET_FREE 0x4C82 | ||
| 164 | #endif | 167 | #endif |
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 3b535db00a94..343bd7661f2a 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h | |||
| @@ -39,16 +39,6 @@ extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan, | |||
| 39 | struct mem_cgroup *mem_cont, | 39 | struct mem_cgroup *mem_cont, |
| 40 | int active, int file); | 40 | int active, int file); |
| 41 | 41 | ||
| 42 | struct memcg_scanrecord { | ||
| 43 | struct mem_cgroup *mem; /* scanend memory cgroup */ | ||
| 44 | struct mem_cgroup *root; /* scan target hierarchy root */ | ||
| 45 | int context; /* scanning context (see memcontrol.c) */ | ||
| 46 | unsigned long nr_scanned[2]; /* the number of scanned pages */ | ||
| 47 | unsigned long nr_rotated[2]; /* the number of rotated pages */ | ||
| 48 | unsigned long nr_freed[2]; /* the number of freed pages */ | ||
| 49 | unsigned long elapsed; /* nsec of time elapsed while scanning */ | ||
| 50 | }; | ||
| 51 | |||
| 52 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR | 42 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR |
| 53 | /* | 43 | /* |
| 54 | * All "charge" functions with gfp_mask should use GFP_KERNEL or | 44 | * All "charge" functions with gfp_mask should use GFP_KERNEL or |
| @@ -127,15 +117,6 @@ mem_cgroup_get_reclaim_stat_from_page(struct page *page); | |||
| 127 | extern void mem_cgroup_print_oom_info(struct mem_cgroup *memcg, | 117 | extern void mem_cgroup_print_oom_info(struct mem_cgroup *memcg, |
| 128 | struct task_struct *p); | 118 | struct task_struct *p); |
| 129 | 119 | ||
| 130 | extern unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *mem, | ||
| 131 | gfp_t gfp_mask, bool noswap, | ||
| 132 | struct memcg_scanrecord *rec); | ||
| 133 | extern unsigned long mem_cgroup_shrink_node_zone(struct mem_cgroup *mem, | ||
| 134 | gfp_t gfp_mask, bool noswap, | ||
| 135 | struct zone *zone, | ||
| 136 | struct memcg_scanrecord *rec, | ||
| 137 | unsigned long *nr_scanned); | ||
| 138 | |||
| 139 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP | 120 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP |
| 140 | extern int do_swap_account; | 121 | extern int do_swap_account; |
| 141 | #endif | 122 | #endif |
diff --git a/include/linux/mfd/wm8994/pdata.h b/include/linux/mfd/wm8994/pdata.h index d12f8d635a81..97cf4f27d647 100644 --- a/include/linux/mfd/wm8994/pdata.h +++ b/include/linux/mfd/wm8994/pdata.h | |||
| @@ -26,7 +26,7 @@ struct wm8994_ldo_pdata { | |||
| 26 | struct regulator_init_data *init_data; | 26 | struct regulator_init_data *init_data; |
| 27 | }; | 27 | }; |
| 28 | 28 | ||
| 29 | #define WM8994_CONFIGURE_GPIO 0x8000 | 29 | #define WM8994_CONFIGURE_GPIO 0x10000 |
| 30 | 30 | ||
| 31 | #define WM8994_DRC_REGS 5 | 31 | #define WM8994_DRC_REGS 5 |
| 32 | #define WM8994_EQ_REGS 20 | 32 | #define WM8994_EQ_REGS 20 |
diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h index 18fd13028ba1..c309b1ecdc1c 100644 --- a/include/linux/miscdevice.h +++ b/include/linux/miscdevice.h | |||
| @@ -40,6 +40,7 @@ | |||
| 40 | #define BTRFS_MINOR 234 | 40 | #define BTRFS_MINOR 234 |
| 41 | #define AUTOFS_MINOR 235 | 41 | #define AUTOFS_MINOR 235 |
| 42 | #define MAPPER_CTRL_MINOR 236 | 42 | #define MAPPER_CTRL_MINOR 236 |
| 43 | #define LOOP_CTRL_MINOR 237 | ||
| 43 | #define MISC_DYNAMIC_MINOR 255 | 44 | #define MISC_DYNAMIC_MINOR 255 |
| 44 | 45 | ||
| 45 | struct device; | 46 | struct device; |
diff --git a/include/linux/mm.h b/include/linux/mm.h index fd599f4bb846..7438071b44aa 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -685,7 +685,7 @@ static inline void set_page_section(struct page *page, unsigned long section) | |||
| 685 | page->flags |= (section & SECTIONS_MASK) << SECTIONS_PGSHIFT; | 685 | page->flags |= (section & SECTIONS_MASK) << SECTIONS_PGSHIFT; |
| 686 | } | 686 | } |
| 687 | 687 | ||
| 688 | static inline unsigned long page_to_section(struct page *page) | 688 | static inline unsigned long page_to_section(const struct page *page) |
| 689 | { | 689 | { |
| 690 | return (page->flags >> SECTIONS_PGSHIFT) & SECTIONS_MASK; | 690 | return (page->flags >> SECTIONS_PGSHIFT) & SECTIONS_MASK; |
| 691 | } | 691 | } |
| @@ -720,7 +720,7 @@ static inline void set_page_links(struct page *page, enum zone_type zone, | |||
| 720 | 720 | ||
| 721 | static __always_inline void *lowmem_page_address(const struct page *page) | 721 | static __always_inline void *lowmem_page_address(const struct page *page) |
| 722 | { | 722 | { |
| 723 | return __va(PFN_PHYS(page_to_pfn((struct page *)page))); | 723 | return __va(PFN_PHYS(page_to_pfn(page))); |
| 724 | } | 724 | } |
| 725 | 725 | ||
| 726 | #if defined(CONFIG_HIGHMEM) && !defined(WANT_PAGE_VIRTUAL) | 726 | #if defined(CONFIG_HIGHMEM) && !defined(WANT_PAGE_VIRTUAL) |
| @@ -737,7 +737,7 @@ static __always_inline void *lowmem_page_address(const struct page *page) | |||
| 737 | #endif | 737 | #endif |
| 738 | 738 | ||
| 739 | #if defined(HASHED_PAGE_VIRTUAL) | 739 | #if defined(HASHED_PAGE_VIRTUAL) |
| 740 | void *page_address(struct page *page); | 740 | void *page_address(const struct page *page); |
| 741 | void set_page_address(struct page *page, void *virtual); | 741 | void set_page_address(struct page *page, void *virtual); |
| 742 | void page_address_init(void); | 742 | void page_address_init(void); |
| 743 | #endif | 743 | #endif |
diff --git a/include/linux/pci.h b/include/linux/pci.h index f27893b3b724..8c230cbcbb48 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -251,7 +251,8 @@ struct pci_dev { | |||
| 251 | u8 revision; /* PCI revision, low byte of class word */ | 251 | u8 revision; /* PCI revision, low byte of class word */ |
| 252 | u8 hdr_type; /* PCI header type (`multi' flag masked out) */ | 252 | u8 hdr_type; /* PCI header type (`multi' flag masked out) */ |
| 253 | u8 pcie_cap; /* PCI-E capability offset */ | 253 | u8 pcie_cap; /* PCI-E capability offset */ |
| 254 | u8 pcie_type; /* PCI-E device/port type */ | 254 | u8 pcie_type:4; /* PCI-E device/port type */ |
| 255 | u8 pcie_mpss:3; /* PCI-E Max Payload Size Supported */ | ||
| 255 | u8 rom_base_reg; /* which config register controls the ROM */ | 256 | u8 rom_base_reg; /* which config register controls the ROM */ |
| 256 | u8 pin; /* which interrupt pin this device uses */ | 257 | u8 pin; /* which interrupt pin this device uses */ |
| 257 | 258 | ||
| @@ -617,6 +618,16 @@ struct pci_driver { | |||
| 617 | /* these external functions are only available when PCI support is enabled */ | 618 | /* these external functions are only available when PCI support is enabled */ |
| 618 | #ifdef CONFIG_PCI | 619 | #ifdef CONFIG_PCI |
| 619 | 620 | ||
| 621 | extern void pcie_bus_configure_settings(struct pci_bus *bus, u8 smpss); | ||
| 622 | |||
| 623 | enum pcie_bus_config_types { | ||
| 624 | PCIE_BUS_PERFORMANCE, | ||
| 625 | PCIE_BUS_SAFE, | ||
| 626 | PCIE_BUS_PEER2PEER, | ||
| 627 | }; | ||
| 628 | |||
| 629 | extern enum pcie_bus_config_types pcie_bus_config; | ||
| 630 | |||
| 620 | extern struct bus_type pci_bus_type; | 631 | extern struct bus_type pci_bus_type; |
| 621 | 632 | ||
| 622 | /* Do NOT directly access these two variables, unless you are arch specific pci | 633 | /* Do NOT directly access these two variables, unless you are arch specific pci |
| @@ -796,10 +807,13 @@ int pcix_get_mmrbc(struct pci_dev *dev); | |||
| 796 | int pcix_set_mmrbc(struct pci_dev *dev, int mmrbc); | 807 | int pcix_set_mmrbc(struct pci_dev *dev, int mmrbc); |
| 797 | int pcie_get_readrq(struct pci_dev *dev); | 808 | int pcie_get_readrq(struct pci_dev *dev); |
| 798 | int pcie_set_readrq(struct pci_dev *dev, int rq); | 809 | int pcie_set_readrq(struct pci_dev *dev, int rq); |
| 810 | int pcie_get_mps(struct pci_dev *dev); | ||
| 811 | int pcie_set_mps(struct pci_dev *dev, int mps); | ||
| 799 | int __pci_reset_function(struct pci_dev *dev); | 812 | int __pci_reset_function(struct pci_dev *dev); |
| 800 | int pci_reset_function(struct pci_dev *dev); | 813 | int pci_reset_function(struct pci_dev *dev); |
| 801 | void pci_update_resource(struct pci_dev *dev, int resno); | 814 | void pci_update_resource(struct pci_dev *dev, int resno); |
| 802 | int __must_check pci_assign_resource(struct pci_dev *dev, int i); | 815 | int __must_check pci_assign_resource(struct pci_dev *dev, int i); |
| 816 | int __must_check pci_reassign_resource(struct pci_dev *dev, int i, resource_size_t add_size, resource_size_t align); | ||
| 803 | int pci_select_bars(struct pci_dev *dev, unsigned long flags); | 817 | int pci_select_bars(struct pci_dev *dev, unsigned long flags); |
| 804 | 818 | ||
| 805 | /* ROM control related routines */ | 819 | /* ROM control related routines */ |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 245bafdafd5e..c816075c01ce 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
| @@ -944,8 +944,10 @@ extern void perf_pmu_unregister(struct pmu *pmu); | |||
| 944 | 944 | ||
| 945 | extern int perf_num_counters(void); | 945 | extern int perf_num_counters(void); |
| 946 | extern const char *perf_pmu_name(void); | 946 | extern const char *perf_pmu_name(void); |
| 947 | extern void __perf_event_task_sched_in(struct task_struct *task); | 947 | extern void __perf_event_task_sched_in(struct task_struct *prev, |
| 948 | extern void __perf_event_task_sched_out(struct task_struct *task, struct task_struct *next); | 948 | struct task_struct *task); |
| 949 | extern void __perf_event_task_sched_out(struct task_struct *prev, | ||
| 950 | struct task_struct *next); | ||
| 949 | extern int perf_event_init_task(struct task_struct *child); | 951 | extern int perf_event_init_task(struct task_struct *child); |
| 950 | extern void perf_event_exit_task(struct task_struct *child); | 952 | extern void perf_event_exit_task(struct task_struct *child); |
| 951 | extern void perf_event_free_task(struct task_struct *task); | 953 | extern void perf_event_free_task(struct task_struct *task); |
| @@ -1059,17 +1061,20 @@ perf_sw_event(u32 event_id, u64 nr, struct pt_regs *regs, u64 addr) | |||
| 1059 | 1061 | ||
| 1060 | extern struct jump_label_key perf_sched_events; | 1062 | extern struct jump_label_key perf_sched_events; |
| 1061 | 1063 | ||
| 1062 | static inline void perf_event_task_sched_in(struct task_struct *task) | 1064 | static inline void perf_event_task_sched_in(struct task_struct *prev, |
| 1065 | struct task_struct *task) | ||
| 1063 | { | 1066 | { |
| 1064 | if (static_branch(&perf_sched_events)) | 1067 | if (static_branch(&perf_sched_events)) |
| 1065 | __perf_event_task_sched_in(task); | 1068 | __perf_event_task_sched_in(prev, task); |
| 1066 | } | 1069 | } |
| 1067 | 1070 | ||
| 1068 | static inline void perf_event_task_sched_out(struct task_struct *task, struct task_struct *next) | 1071 | static inline void perf_event_task_sched_out(struct task_struct *prev, |
| 1072 | struct task_struct *next) | ||
| 1069 | { | 1073 | { |
| 1070 | perf_sw_event(PERF_COUNT_SW_CONTEXT_SWITCHES, 1, NULL, 0); | 1074 | perf_sw_event(PERF_COUNT_SW_CONTEXT_SWITCHES, 1, NULL, 0); |
| 1071 | 1075 | ||
| 1072 | __perf_event_task_sched_out(task, next); | 1076 | if (static_branch(&perf_sched_events)) |
| 1077 | __perf_event_task_sched_out(prev, next); | ||
| 1073 | } | 1078 | } |
| 1074 | 1079 | ||
| 1075 | extern void perf_event_mmap(struct vm_area_struct *vma); | 1080 | extern void perf_event_mmap(struct vm_area_struct *vma); |
| @@ -1139,10 +1144,11 @@ extern void perf_event_disable(struct perf_event *event); | |||
| 1139 | extern void perf_event_task_tick(void); | 1144 | extern void perf_event_task_tick(void); |
| 1140 | #else | 1145 | #else |
| 1141 | static inline void | 1146 | static inline void |
| 1142 | perf_event_task_sched_in(struct task_struct *task) { } | 1147 | perf_event_task_sched_in(struct task_struct *prev, |
| 1148 | struct task_struct *task) { } | ||
| 1143 | static inline void | 1149 | static inline void |
| 1144 | perf_event_task_sched_out(struct task_struct *task, | 1150 | perf_event_task_sched_out(struct task_struct *prev, |
| 1145 | struct task_struct *next) { } | 1151 | struct task_struct *next) { } |
| 1146 | static inline int perf_event_init_task(struct task_struct *child) { return 0; } | 1152 | static inline int perf_event_init_task(struct task_struct *child) { return 0; } |
| 1147 | static inline void perf_event_exit_task(struct task_struct *child) { } | 1153 | static inline void perf_event_exit_task(struct task_struct *child) { } |
| 1148 | static inline void perf_event_free_task(struct task_struct *task) { } | 1154 | static inline void perf_event_free_task(struct task_struct *task) { } |
diff --git a/include/linux/personality.h b/include/linux/personality.h index eec3bae164d4..8fc7dd1a57ff 100644 --- a/include/linux/personality.h +++ b/include/linux/personality.h | |||
| @@ -22,6 +22,7 @@ extern int __set_personality(unsigned int); | |||
| 22 | * These occupy the top three bytes. | 22 | * These occupy the top three bytes. |
| 23 | */ | 23 | */ |
| 24 | enum { | 24 | enum { |
| 25 | UNAME26 = 0x0020000, | ||
| 25 | ADDR_NO_RANDOMIZE = 0x0040000, /* disable randomization of VA space */ | 26 | ADDR_NO_RANDOMIZE = 0x0040000, /* disable randomization of VA space */ |
| 26 | FDPIC_FUNCPTRS = 0x0080000, /* userspace function ptrs point to descriptors | 27 | FDPIC_FUNCPTRS = 0x0080000, /* userspace function ptrs point to descriptors |
| 27 | * (signal handling) | 28 | * (signal handling) |
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h index 21097cb086fe..f9ec1736a116 100644 --- a/include/linux/pm_domain.h +++ b/include/linux/pm_domain.h | |||
| @@ -72,8 +72,6 @@ extern int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd, | |||
| 72 | extern void pm_genpd_init(struct generic_pm_domain *genpd, | 72 | extern void pm_genpd_init(struct generic_pm_domain *genpd, |
| 73 | struct dev_power_governor *gov, bool is_off); | 73 | struct dev_power_governor *gov, bool is_off); |
| 74 | extern int pm_genpd_poweron(struct generic_pm_domain *genpd); | 74 | extern int pm_genpd_poweron(struct generic_pm_domain *genpd); |
| 75 | extern void pm_genpd_poweroff_unused(void); | ||
| 76 | extern void genpd_queue_power_off_work(struct generic_pm_domain *genpd); | ||
| 77 | #else | 75 | #else |
| 78 | static inline int pm_genpd_add_device(struct generic_pm_domain *genpd, | 76 | static inline int pm_genpd_add_device(struct generic_pm_domain *genpd, |
| 79 | struct device *dev) | 77 | struct device *dev) |
| @@ -101,8 +99,14 @@ static inline int pm_genpd_poweron(struct generic_pm_domain *genpd) | |||
| 101 | { | 99 | { |
| 102 | return -ENOSYS; | 100 | return -ENOSYS; |
| 103 | } | 101 | } |
| 104 | static inline void pm_genpd_poweroff_unused(void) {} | 102 | #endif |
| 103 | |||
| 104 | #ifdef CONFIG_PM_GENERIC_DOMAINS_RUNTIME | ||
| 105 | extern void genpd_queue_power_off_work(struct generic_pm_domain *genpd); | ||
| 106 | extern void pm_genpd_poweroff_unused(void); | ||
| 107 | #else | ||
| 105 | static inline void genpd_queue_power_off_work(struct generic_pm_domain *gpd) {} | 108 | static inline void genpd_queue_power_off_work(struct generic_pm_domain *gpd) {} |
| 109 | static inline void pm_genpd_poweroff_unused(void) {} | ||
| 106 | #endif | 110 | #endif |
| 107 | 111 | ||
| 108 | #endif /* _LINUX_PM_DOMAIN_H */ | 112 | #endif /* _LINUX_PM_DOMAIN_H */ |
diff --git a/include/linux/pwm_backlight.h b/include/linux/pwm_backlight.h index 5e3e25a3c9c3..63d2df43e61a 100644 --- a/include/linux/pwm_backlight.h +++ b/include/linux/pwm_backlight.h | |||
| @@ -14,6 +14,7 @@ struct platform_pwm_backlight_data { | |||
| 14 | unsigned int pwm_period_ns; | 14 | unsigned int pwm_period_ns; |
| 15 | int (*init)(struct device *dev); | 15 | int (*init)(struct device *dev); |
| 16 | int (*notify)(struct device *dev, int brightness); | 16 | int (*notify)(struct device *dev, int brightness); |
| 17 | void (*notify_after)(struct device *dev, int brightness); | ||
| 17 | void (*exit)(struct device *dev); | 18 | void (*exit)(struct device *dev); |
| 18 | int (*check_fb)(struct device *dev, struct fb_info *info); | 19 | int (*check_fb)(struct device *dev, struct fb_info *info); |
| 19 | }; | 20 | }; |
diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h index 26f6ea4444e3..b47771aa5718 100644 --- a/include/linux/regulator/consumer.h +++ b/include/linux/regulator/consumer.h | |||
| @@ -123,7 +123,7 @@ struct regulator_bulk_data { | |||
| 123 | const char *supply; | 123 | const char *supply; |
| 124 | struct regulator *consumer; | 124 | struct regulator *consumer; |
| 125 | 125 | ||
| 126 | /* Internal use */ | 126 | /* private: Internal use */ |
| 127 | int ret; | 127 | int ret; |
| 128 | }; | 128 | }; |
| 129 | 129 | ||
diff --git a/include/linux/rio_regs.h b/include/linux/rio_regs.h index 9026b30238f3..218168a2b5e9 100644 --- a/include/linux/rio_regs.h +++ b/include/linux/rio_regs.h | |||
| @@ -36,12 +36,12 @@ | |||
| 36 | #define RIO_PEF_PROCESSOR 0x20000000 /* [I] Processor */ | 36 | #define RIO_PEF_PROCESSOR 0x20000000 /* [I] Processor */ |
| 37 | #define RIO_PEF_SWITCH 0x10000000 /* [I] Switch */ | 37 | #define RIO_PEF_SWITCH 0x10000000 /* [I] Switch */ |
| 38 | #define RIO_PEF_MULTIPORT 0x08000000 /* [VI, 2.1] Multiport */ | 38 | #define RIO_PEF_MULTIPORT 0x08000000 /* [VI, 2.1] Multiport */ |
| 39 | #define RIO_PEF_INB_MBOX 0x00f00000 /* [II] Mailboxes */ | 39 | #define RIO_PEF_INB_MBOX 0x00f00000 /* [II, <= 1.2] Mailboxes */ |
| 40 | #define RIO_PEF_INB_MBOX0 0x00800000 /* [II] Mailbox 0 */ | 40 | #define RIO_PEF_INB_MBOX0 0x00800000 /* [II, <= 1.2] Mailbox 0 */ |
| 41 | #define RIO_PEF_INB_MBOX1 0x00400000 /* [II] Mailbox 1 */ | 41 | #define RIO_PEF_INB_MBOX1 0x00400000 /* [II, <= 1.2] Mailbox 1 */ |
| 42 | #define RIO_PEF_INB_MBOX2 0x00200000 /* [II] Mailbox 2 */ | 42 | #define RIO_PEF_INB_MBOX2 0x00200000 /* [II, <= 1.2] Mailbox 2 */ |
| 43 | #define RIO_PEF_INB_MBOX3 0x00100000 /* [II] Mailbox 3 */ | 43 | #define RIO_PEF_INB_MBOX3 0x00100000 /* [II, <= 1.2] Mailbox 3 */ |
| 44 | #define RIO_PEF_INB_DOORBELL 0x00080000 /* [II] Doorbells */ | 44 | #define RIO_PEF_INB_DOORBELL 0x00080000 /* [II, <= 1.2] Doorbells */ |
| 45 | #define RIO_PEF_EXT_RT 0x00000200 /* [III, 1.3] Extended route table support */ | 45 | #define RIO_PEF_EXT_RT 0x00000200 /* [III, 1.3] Extended route table support */ |
| 46 | #define RIO_PEF_STD_RT 0x00000100 /* [III, 1.3] Standard route table support */ | 46 | #define RIO_PEF_STD_RT 0x00000100 /* [III, 1.3] Standard route table support */ |
| 47 | #define RIO_PEF_CTLS 0x00000010 /* [III] CTLS */ | 47 | #define RIO_PEF_CTLS 0x00000010 /* [III] CTLS */ |
| @@ -102,7 +102,7 @@ | |||
| 102 | #define RIO_SWITCH_RT_LIMIT 0x34 /* [III, 1.3] Switch Route Table Destination ID Limit CAR */ | 102 | #define RIO_SWITCH_RT_LIMIT 0x34 /* [III, 1.3] Switch Route Table Destination ID Limit CAR */ |
| 103 | #define RIO_RT_MAX_DESTID 0x0000ffff | 103 | #define RIO_RT_MAX_DESTID 0x0000ffff |
| 104 | 104 | ||
| 105 | #define RIO_MBOX_CSR 0x40 /* [II] Mailbox CSR */ | 105 | #define RIO_MBOX_CSR 0x40 /* [II, <= 1.2] Mailbox CSR */ |
| 106 | #define RIO_MBOX0_AVAIL 0x80000000 /* [II] Mbox 0 avail */ | 106 | #define RIO_MBOX0_AVAIL 0x80000000 /* [II] Mbox 0 avail */ |
| 107 | #define RIO_MBOX0_FULL 0x40000000 /* [II] Mbox 0 full */ | 107 | #define RIO_MBOX0_FULL 0x40000000 /* [II] Mbox 0 full */ |
| 108 | #define RIO_MBOX0_EMPTY 0x20000000 /* [II] Mbox 0 empty */ | 108 | #define RIO_MBOX0_EMPTY 0x20000000 /* [II] Mbox 0 empty */ |
| @@ -128,8 +128,8 @@ | |||
| 128 | #define RIO_MBOX3_FAIL 0x00000008 /* [II] Mbox 3 fail */ | 128 | #define RIO_MBOX3_FAIL 0x00000008 /* [II] Mbox 3 fail */ |
| 129 | #define RIO_MBOX3_ERROR 0x00000004 /* [II] Mbox 3 error */ | 129 | #define RIO_MBOX3_ERROR 0x00000004 /* [II] Mbox 3 error */ |
| 130 | 130 | ||
| 131 | #define RIO_WRITE_PORT_CSR 0x44 /* [I] Write Port CSR */ | 131 | #define RIO_WRITE_PORT_CSR 0x44 /* [I, <= 1.2] Write Port CSR */ |
| 132 | #define RIO_DOORBELL_CSR 0x44 /* [II] Doorbell CSR */ | 132 | #define RIO_DOORBELL_CSR 0x44 /* [II, <= 1.2] Doorbell CSR */ |
| 133 | #define RIO_DOORBELL_AVAIL 0x80000000 /* [II] Doorbell avail */ | 133 | #define RIO_DOORBELL_AVAIL 0x80000000 /* [II] Doorbell avail */ |
| 134 | #define RIO_DOORBELL_FULL 0x40000000 /* [II] Doorbell full */ | 134 | #define RIO_DOORBELL_FULL 0x40000000 /* [II] Doorbell full */ |
| 135 | #define RIO_DOORBELL_EMPTY 0x20000000 /* [II] Doorbell empty */ | 135 | #define RIO_DOORBELL_EMPTY 0x20000000 /* [II] Doorbell empty */ |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 7b996ed86d5b..8bd383caa363 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
| @@ -524,6 +524,7 @@ static inline struct sk_buff *alloc_skb_fclone(unsigned int size, | |||
| 524 | extern bool skb_recycle_check(struct sk_buff *skb, int skb_size); | 524 | extern bool skb_recycle_check(struct sk_buff *skb, int skb_size); |
| 525 | 525 | ||
| 526 | extern struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src); | 526 | extern struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src); |
| 527 | extern int skb_copy_ubufs(struct sk_buff *skb, gfp_t gfp_mask); | ||
| 527 | extern struct sk_buff *skb_clone(struct sk_buff *skb, | 528 | extern struct sk_buff *skb_clone(struct sk_buff *skb, |
| 528 | gfp_t priority); | 529 | gfp_t priority); |
| 529 | extern struct sk_buff *skb_copy(const struct sk_buff *skb, | 530 | extern struct sk_buff *skb_copy(const struct sk_buff *skb, |
diff --git a/include/linux/snmp.h b/include/linux/snmp.h index 12b2b18e50c1..e16557a357e5 100644 --- a/include/linux/snmp.h +++ b/include/linux/snmp.h | |||
| @@ -231,6 +231,8 @@ enum | |||
| 231 | LINUX_MIB_TCPDEFERACCEPTDROP, | 231 | LINUX_MIB_TCPDEFERACCEPTDROP, |
| 232 | LINUX_MIB_IPRPFILTER, /* IP Reverse Path Filter (rp_filter) */ | 232 | LINUX_MIB_IPRPFILTER, /* IP Reverse Path Filter (rp_filter) */ |
| 233 | LINUX_MIB_TCPTIMEWAITOVERFLOW, /* TCPTimeWaitOverflow */ | 233 | LINUX_MIB_TCPTIMEWAITOVERFLOW, /* TCPTimeWaitOverflow */ |
| 234 | LINUX_MIB_TCPREQQFULLDOCOOKIES, /* TCPReqQFullDoCookies */ | ||
| 235 | LINUX_MIB_TCPREQQFULLDROP, /* TCPReqQFullDrop */ | ||
| 234 | __LINUX_MIB_MAX | 236 | __LINUX_MIB_MAX |
| 235 | }; | 237 | }; |
| 236 | 238 | ||
diff --git a/include/linux/swap.h b/include/linux/swap.h index 14d62490922e..c71f84bb62ec 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h | |||
| @@ -252,6 +252,12 @@ static inline void lru_cache_add_file(struct page *page) | |||
| 252 | extern unsigned long try_to_free_pages(struct zonelist *zonelist, int order, | 252 | extern unsigned long try_to_free_pages(struct zonelist *zonelist, int order, |
| 253 | gfp_t gfp_mask, nodemask_t *mask); | 253 | gfp_t gfp_mask, nodemask_t *mask); |
| 254 | extern int __isolate_lru_page(struct page *page, int mode, int file); | 254 | extern int __isolate_lru_page(struct page *page, int mode, int file); |
| 255 | extern unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *mem, | ||
| 256 | gfp_t gfp_mask, bool noswap); | ||
| 257 | extern unsigned long mem_cgroup_shrink_node_zone(struct mem_cgroup *mem, | ||
| 258 | gfp_t gfp_mask, bool noswap, | ||
| 259 | struct zone *zone, | ||
| 260 | unsigned long *nr_scanned); | ||
| 255 | extern unsigned long shrink_all_memory(unsigned long nr_pages); | 261 | extern unsigned long shrink_all_memory(unsigned long nr_pages); |
| 256 | extern int vm_swappiness; | 262 | extern int vm_swappiness; |
| 257 | extern int remove_mapping(struct address_space *mapping, struct page *page); | 263 | extern int remove_mapping(struct address_space *mapping, struct page *page); |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 8c03b98df5f9..1ff0ec2a5e8d 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -702,9 +702,6 @@ asmlinkage long sys_sysctl(struct __sysctl_args __user *args); | |||
| 702 | asmlinkage long sys_sysinfo(struct sysinfo __user *info); | 702 | asmlinkage long sys_sysinfo(struct sysinfo __user *info); |
| 703 | asmlinkage long sys_sysfs(int option, | 703 | asmlinkage long sys_sysfs(int option, |
| 704 | unsigned long arg1, unsigned long arg2); | 704 | unsigned long arg1, unsigned long arg2); |
| 705 | asmlinkage long sys_nfsservctl(int cmd, | ||
| 706 | struct nfsctl_arg __user *arg, | ||
| 707 | void __user *res); | ||
| 708 | asmlinkage long sys_syslog(int type, char __user *buf, int len); | 705 | asmlinkage long sys_syslog(int type, char __user *buf, int len); |
| 709 | asmlinkage long sys_uselib(const char __user *library); | 706 | asmlinkage long sys_uselib(const char __user *library); |
| 710 | asmlinkage long sys_ni_syscall(void); | 707 | asmlinkage long sys_ni_syscall(void); |
diff --git a/include/linux/ti_wilink_st.h b/include/linux/ti_wilink_st.h index b004e557caa9..2ef4385da6bf 100644 --- a/include/linux/ti_wilink_st.h +++ b/include/linux/ti_wilink_st.h | |||
| @@ -410,7 +410,28 @@ struct gps_event_hdr { | |||
| 410 | u16 plen; | 410 | u16 plen; |
| 411 | } __attribute__ ((packed)); | 411 | } __attribute__ ((packed)); |
| 412 | 412 | ||
| 413 | /* platform data */ | 413 | /** |
| 414 | * struct ti_st_plat_data - platform data shared between ST driver and | ||
| 415 | * platform specific board file which adds the ST device. | ||
| 416 | * @nshutdown_gpio: Host's GPIO line to which chip's BT_EN is connected. | ||
| 417 | * @dev_name: The UART/TTY name to which chip is interfaced. (eg: /dev/ttyS1) | ||
| 418 | * @flow_cntrl: Should always be 1, since UART's CTS/RTS is used for PM | ||
| 419 | * purposes. | ||
| 420 | * @baud_rate: The baud rate supported by the Host UART controller, this will | ||
| 421 | * be shared across with the chip via a HCI VS command from User-Space Init | ||
| 422 | * Mgr application. | ||
| 423 | * @suspend: | ||
| 424 | * @resume: legacy PM routines hooked to platform specific board file, so as | ||
| 425 | * to take chip-host interface specific action. | ||
| 426 | * @chip_enable: | ||
| 427 | * @chip_disable: Platform/Interface specific mux mode setting, GPIO | ||
| 428 | * configuring, Host side PM disabling etc.. can be done here. | ||
| 429 | * @chip_asleep: | ||
| 430 | * @chip_awake: Chip specific deep sleep states is communicated to Host | ||
| 431 | * specific board-xx.c to take actions such as cut UART clocks when chip | ||
| 432 | * asleep or run host faster when chip awake etc.. | ||
| 433 | * | ||
| 434 | */ | ||
| 414 | struct ti_st_plat_data { | 435 | struct ti_st_plat_data { |
| 415 | long nshutdown_gpio; | 436 | long nshutdown_gpio; |
| 416 | unsigned char dev_name[UART_DEV_NAME_LEN]; /* uart name */ | 437 | unsigned char dev_name[UART_DEV_NAME_LEN]; /* uart name */ |
| @@ -418,6 +439,10 @@ struct ti_st_plat_data { | |||
| 418 | unsigned long baud_rate; | 439 | unsigned long baud_rate; |
| 419 | int (*suspend)(struct platform_device *, pm_message_t); | 440 | int (*suspend)(struct platform_device *, pm_message_t); |
| 420 | int (*resume)(struct platform_device *); | 441 | int (*resume)(struct platform_device *); |
| 442 | int (*chip_enable) (struct kim_data_s *); | ||
| 443 | int (*chip_disable) (struct kim_data_s *); | ||
| 444 | int (*chip_asleep) (struct kim_data_s *); | ||
| 445 | int (*chip_awake) (struct kim_data_s *); | ||
| 421 | }; | 446 | }; |
| 422 | 447 | ||
| 423 | #endif /* TI_WILINK_ST_H */ | 448 | #endif /* TI_WILINK_ST_H */ |
diff --git a/include/linux/tty.h b/include/linux/tty.h index 44bc0c5617e1..5f2ede82b3d6 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h | |||
| @@ -421,6 +421,8 @@ extern void tty_driver_flush_buffer(struct tty_struct *tty); | |||
| 421 | extern void tty_throttle(struct tty_struct *tty); | 421 | extern void tty_throttle(struct tty_struct *tty); |
| 422 | extern void tty_unthrottle(struct tty_struct *tty); | 422 | extern void tty_unthrottle(struct tty_struct *tty); |
| 423 | extern int tty_do_resize(struct tty_struct *tty, struct winsize *ws); | 423 | extern int tty_do_resize(struct tty_struct *tty, struct winsize *ws); |
| 424 | extern void tty_driver_remove_tty(struct tty_driver *driver, | ||
| 425 | struct tty_struct *tty); | ||
| 424 | extern void tty_shutdown(struct tty_struct *tty); | 426 | extern void tty_shutdown(struct tty_struct *tty); |
| 425 | extern void tty_free_termios(struct tty_struct *tty); | 427 | extern void tty_free_termios(struct tty_struct *tty); |
| 426 | extern int is_current_pgrp_orphaned(void); | 428 | extern int is_current_pgrp_orphaned(void); |
diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h index 9deeac855240..ecdaeb98b293 100644 --- a/include/linux/tty_driver.h +++ b/include/linux/tty_driver.h | |||
| @@ -47,6 +47,9 @@ | |||
| 47 | * | 47 | * |
| 48 | * This routine is called synchronously when a particular tty device | 48 | * This routine is called synchronously when a particular tty device |
| 49 | * is closed for the last time freeing up the resources. | 49 | * is closed for the last time freeing up the resources. |
| 50 | * Note that tty_shutdown() is not called if ops->shutdown is defined. | ||
| 51 | * This means one is responsible to take care of calling ops->remove (e.g. | ||
| 52 | * via tty_driver_remove_tty) and releasing tty->termios. | ||
| 50 | * | 53 | * |
| 51 | * | 54 | * |
| 52 | * void (*cleanup)(struct tty_struct * tty); | 55 | * void (*cleanup)(struct tty_struct * tty); |
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index f1bfa12ea246..2b8963ff0f35 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h | |||
| @@ -12,15 +12,6 @@ | |||
| 12 | * | 12 | * |
| 13 | * (thresh - thresh/DIRTY_FULL_SCOPE, thresh) | 13 | * (thresh - thresh/DIRTY_FULL_SCOPE, thresh) |
| 14 | * | 14 | * |
| 15 | * The 1/16 region above the global dirty limit will be put to maximum pauses: | ||
| 16 | * | ||
| 17 | * (limit, limit + limit/DIRTY_MAXPAUSE_AREA) | ||
| 18 | * | ||
| 19 | * The 1/16 region above the max-pause region, dirty exceeded bdi's will be put | ||
| 20 | * to loops: | ||
| 21 | * | ||
| 22 | * (limit + limit/DIRTY_MAXPAUSE_AREA, limit + limit/DIRTY_PASSGOOD_AREA) | ||
| 23 | * | ||
| 24 | * Further beyond, all dirtier tasks will enter a loop waiting (possibly long | 15 | * Further beyond, all dirtier tasks will enter a loop waiting (possibly long |
| 25 | * time) for the dirty pages to drop, unless written enough pages. | 16 | * time) for the dirty pages to drop, unless written enough pages. |
| 26 | * | 17 | * |
| @@ -31,8 +22,6 @@ | |||
| 31 | */ | 22 | */ |
| 32 | #define DIRTY_SCOPE 8 | 23 | #define DIRTY_SCOPE 8 |
| 33 | #define DIRTY_FULL_SCOPE (DIRTY_SCOPE / 2) | 24 | #define DIRTY_FULL_SCOPE (DIRTY_SCOPE / 2) |
| 34 | #define DIRTY_MAXPAUSE_AREA 16 | ||
| 35 | #define DIRTY_PASSGOOD_AREA 8 | ||
| 36 | 25 | ||
| 37 | /* | 26 | /* |
| 38 | * 4MB minimal write chunk size | 27 | * 4MB minimal write chunk size |
