diff options
| author | Ingo Molnar <mingo@elte.hu> | 2011-09-18 08:01:26 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2011-09-18 08:01:39 -0400 |
| commit | bfa322c48dc69bfdaee10faf3bd8dbc23b39a21c (patch) | |
| tree | 95360c5d253115003080264d878f3c0f907f2978 /include/linux | |
| parent | 88ebc08ea9f721d1345d5414288a308ea42ac458 (diff) | |
| parent | 003f6c9df54970d8b19578d195b3e2b398cdbde2 (diff) | |
Merge branch 'linus' into sched/core
Merge reason: We are queueing up a dependent patch.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux')
31 files changed, 214 insertions, 57 deletions
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h index 6395692b2e7a..32f0076e844b 100644 --- a/include/linux/blk_types.h +++ b/include/linux/blk_types.h | |||
| @@ -125,7 +125,11 @@ enum rq_flag_bits { | |||
| 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_DISCARD, /* request to discard sectors */ | 127 | __REQ_DISCARD, /* request to discard sectors */ |
| 128 | __REQ_SECURE, /* secure discard (used with __REQ_DISCARD) */ | ||
| 129 | |||
| 128 | __REQ_NOIDLE, /* don't anticipate more IO after this one */ | 130 | __REQ_NOIDLE, /* don't anticipate more IO after this one */ |
| 131 | __REQ_FUA, /* forced unit access */ | ||
| 132 | __REQ_FLUSH, /* request for cache flush */ | ||
| 129 | 133 | ||
| 130 | /* bio only flags */ | 134 | /* bio only flags */ |
| 131 | __REQ_RAHEAD, /* read ahead, can fail anytime */ | 135 | __REQ_RAHEAD, /* read ahead, can fail anytime */ |
| @@ -135,7 +139,6 @@ enum rq_flag_bits { | |||
| 135 | /* request only flags */ | 139 | /* request only flags */ |
| 136 | __REQ_SORTED, /* elevator knows about this request */ | 140 | __REQ_SORTED, /* elevator knows about this request */ |
| 137 | __REQ_SOFTBARRIER, /* may not be passed by ioscheduler */ | 141 | __REQ_SOFTBARRIER, /* may not be passed by ioscheduler */ |
| 138 | __REQ_FUA, /* forced unit access */ | ||
| 139 | __REQ_NOMERGE, /* don't touch this for merging */ | 142 | __REQ_NOMERGE, /* don't touch this for merging */ |
| 140 | __REQ_STARTED, /* drive already may have started this one */ | 143 | __REQ_STARTED, /* drive already may have started this one */ |
| 141 | __REQ_DONTPREP, /* don't call prep for this one */ | 144 | __REQ_DONTPREP, /* don't call prep for this one */ |
| @@ -146,11 +149,9 @@ enum rq_flag_bits { | |||
| 146 | __REQ_PREEMPT, /* set for "ide_preempt" requests */ | 149 | __REQ_PREEMPT, /* set for "ide_preempt" requests */ |
| 147 | __REQ_ALLOCED, /* request came from our alloc pool */ | 150 | __REQ_ALLOCED, /* request came from our alloc pool */ |
| 148 | __REQ_COPY_USER, /* contains copies of user pages */ | 151 | __REQ_COPY_USER, /* contains copies of user pages */ |
| 149 | __REQ_FLUSH, /* request for cache flush */ | ||
| 150 | __REQ_FLUSH_SEQ, /* request for flush sequence */ | 152 | __REQ_FLUSH_SEQ, /* request for flush sequence */ |
| 151 | __REQ_IO_STAT, /* account I/O stat */ | 153 | __REQ_IO_STAT, /* account I/O stat */ |
| 152 | __REQ_MIXED_MERGE, /* merge of different types, fail separately */ | 154 | __REQ_MIXED_MERGE, /* merge of different types, fail separately */ |
| 153 | __REQ_SECURE, /* secure discard (used with __REQ_DISCARD) */ | ||
| 154 | __REQ_NR_BITS, /* stops here */ | 155 | __REQ_NR_BITS, /* stops here */ |
| 155 | }; | 156 | }; |
| 156 | 157 | ||
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 0e67c45b3bc9..84b15d54f8c2 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 | ||
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..c2bd68f2277a 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -2318,6 +2318,11 @@ extern struct inode * iget5_locked(struct super_block *, unsigned long, int (*te | |||
| 2318 | extern struct inode * iget_locked(struct super_block *, unsigned long); | 2318 | 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 *); | 2319 | extern int insert_inode_locked4(struct inode *, unsigned long, int (*test)(struct inode *, void *), void *); |
| 2320 | extern int insert_inode_locked(struct inode *); | 2320 | extern int insert_inode_locked(struct inode *); |
| 2321 | #ifdef CONFIG_DEBUG_LOCK_ALLOC | ||
| 2322 | extern void lockdep_annotate_inode_mutex_key(struct inode *inode); | ||
| 2323 | #else | ||
| 2324 | static inline void lockdep_annotate_inode_mutex_key(struct inode *inode) { }; | ||
| 2325 | #endif | ||
| 2321 | extern void unlock_new_inode(struct inode *); | 2326 | extern void unlock_new_inode(struct inode *); |
| 2322 | extern unsigned int get_next_ino(void); | 2327 | extern unsigned int get_next_ino(void); |
| 2323 | 2328 | ||
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/irq.h b/include/linux/irq.h index 87a06f345bd2..59517300a315 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
| @@ -23,6 +23,7 @@ | |||
| 23 | #include <linux/errno.h> | 23 | #include <linux/errno.h> |
| 24 | #include <linux/topology.h> | 24 | #include <linux/topology.h> |
| 25 | #include <linux/wait.h> | 25 | #include <linux/wait.h> |
| 26 | #include <linux/module.h> | ||
| 26 | 27 | ||
| 27 | #include <asm/irq.h> | 28 | #include <asm/irq.h> |
| 28 | #include <asm/ptrace.h> | 29 | #include <asm/ptrace.h> |
| @@ -547,7 +548,15 @@ static inline struct msi_desc *irq_data_get_msi(struct irq_data *d) | |||
| 547 | return d->msi_desc; | 548 | return d->msi_desc; |
| 548 | } | 549 | } |
| 549 | 550 | ||
| 550 | int irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node); | 551 | int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node, |
| 552 | struct module *owner); | ||
| 553 | |||
| 554 | static inline int irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, | ||
| 555 | int node) | ||
| 556 | { | ||
| 557 | return __irq_alloc_descs(irq, from, cnt, node, THIS_MODULE); | ||
| 558 | } | ||
| 559 | |||
| 551 | void irq_free_descs(unsigned int irq, unsigned int cnt); | 560 | void irq_free_descs(unsigned int irq, unsigned int cnt); |
| 552 | int irq_reserve_irqs(unsigned int from, unsigned int cnt); | 561 | int irq_reserve_irqs(unsigned int from, unsigned int cnt); |
| 553 | 562 | ||
diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h index 2d921b35212c..150134ac709a 100644 --- a/include/linux/irqdesc.h +++ b/include/linux/irqdesc.h | |||
| @@ -66,6 +66,7 @@ struct irq_desc { | |||
| 66 | #ifdef CONFIG_PROC_FS | 66 | #ifdef CONFIG_PROC_FS |
| 67 | struct proc_dir_entry *dir; | 67 | struct proc_dir_entry *dir; |
| 68 | #endif | 68 | #endif |
| 69 | struct module *owner; | ||
| 69 | const char *name; | 70 | const char *name; |
| 70 | } ____cacheline_internodealigned_in_smp; | 71 | } ____cacheline_internodealigned_in_smp; |
| 71 | 72 | ||
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/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/mmc/host.h b/include/linux/mmc/host.h index 0f83858147a6..1d09562ccf73 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h | |||
| @@ -56,8 +56,6 @@ struct mmc_ios { | |||
| 56 | #define MMC_TIMING_UHS_SDR104 4 | 56 | #define MMC_TIMING_UHS_SDR104 4 |
| 57 | #define MMC_TIMING_UHS_DDR50 5 | 57 | #define MMC_TIMING_UHS_DDR50 5 |
| 58 | 58 | ||
| 59 | unsigned char ddr; /* dual data rate used */ | ||
| 60 | |||
| 61 | #define MMC_SDR_MODE 0 | 59 | #define MMC_SDR_MODE 0 |
| 62 | #define MMC_1_2V_DDR_MODE 1 | 60 | #define MMC_1_2V_DDR_MODE 1 |
| 63 | #define MMC_1_8V_DDR_MODE 2 | 61 | #define MMC_1_8V_DDR_MODE 2 |
diff --git a/include/linux/netlink.h b/include/linux/netlink.h index 2e17c5dbdcb8..180540a84d37 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h | |||
| @@ -29,7 +29,7 @@ | |||
| 29 | #define MAX_LINKS 32 | 29 | #define MAX_LINKS 32 |
| 30 | 30 | ||
| 31 | struct sockaddr_nl { | 31 | struct sockaddr_nl { |
| 32 | sa_family_t nl_family; /* AF_NETLINK */ | 32 | __kernel_sa_family_t nl_family; /* AF_NETLINK */ |
| 33 | unsigned short nl_pad; /* zero */ | 33 | unsigned short nl_pad; /* zero */ |
| 34 | __u32 nl_pid; /* port ID */ | 34 | __u32 nl_pid; /* port ID */ |
| 35 | __u32 nl_groups; /* multicast groups mask */ | 35 | __u32 nl_groups; /* multicast groups mask */ |
diff --git a/include/linux/of.h b/include/linux/of.h index 0085bb01c041..9180dc5cb00b 100644 --- a/include/linux/of.h +++ b/include/linux/of.h | |||
| @@ -256,6 +256,13 @@ static inline int of_property_read_string(struct device_node *np, | |||
| 256 | return -ENOSYS; | 256 | return -ENOSYS; |
| 257 | } | 257 | } |
| 258 | 258 | ||
| 259 | static inline const void *of_get_property(const struct device_node *node, | ||
| 260 | const char *name, | ||
| 261 | int *lenp) | ||
| 262 | { | ||
| 263 | return NULL; | ||
| 264 | } | ||
| 265 | |||
| 259 | #endif /* CONFIG_OF */ | 266 | #endif /* CONFIG_OF */ |
| 260 | 267 | ||
| 261 | static inline int of_property_read_u32(const struct device_node *np, | 268 | static inline int of_property_read_u32(const struct device_node *np, |
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/rtc.h b/include/linux/rtc.h index b27ebea25660..93f4d035076b 100644 --- a/include/linux/rtc.h +++ b/include/linux/rtc.h | |||
| @@ -97,6 +97,9 @@ struct rtc_pll_info { | |||
| 97 | #define RTC_AF 0x20 /* Alarm interrupt */ | 97 | #define RTC_AF 0x20 /* Alarm interrupt */ |
| 98 | #define RTC_UF 0x10 /* Update interrupt for 1Hz RTC */ | 98 | #define RTC_UF 0x10 /* Update interrupt for 1Hz RTC */ |
| 99 | 99 | ||
| 100 | |||
| 101 | #define RTC_MAX_FREQ 8192 | ||
| 102 | |||
| 100 | #ifdef __KERNEL__ | 103 | #ifdef __KERNEL__ |
| 101 | 104 | ||
| 102 | #include <linux/types.h> | 105 | #include <linux/types.h> |
diff --git a/include/linux/socket.h b/include/linux/socket.h index e17f82266639..d0e77f607a79 100644 --- a/include/linux/socket.h +++ b/include/linux/socket.h | |||
| @@ -8,8 +8,10 @@ | |||
| 8 | #define _K_SS_ALIGNSIZE (__alignof__ (struct sockaddr *)) | 8 | #define _K_SS_ALIGNSIZE (__alignof__ (struct sockaddr *)) |
| 9 | /* Implementation specific desired alignment */ | 9 | /* Implementation specific desired alignment */ |
| 10 | 10 | ||
| 11 | typedef unsigned short __kernel_sa_family_t; | ||
| 12 | |||
| 11 | struct __kernel_sockaddr_storage { | 13 | struct __kernel_sockaddr_storage { |
| 12 | unsigned short ss_family; /* address family */ | 14 | __kernel_sa_family_t ss_family; /* address family */ |
| 13 | /* Following field(s) are implementation specific */ | 15 | /* Following field(s) are implementation specific */ |
| 14 | char __data[_K_SS_MAXSIZE - sizeof(unsigned short)]; | 16 | char __data[_K_SS_MAXSIZE - sizeof(unsigned short)]; |
| 15 | /* space to achieve desired size, */ | 17 | /* space to achieve desired size, */ |
| @@ -35,7 +37,7 @@ struct seq_file; | |||
| 35 | extern void socket_seq_show(struct seq_file *seq); | 37 | extern void socket_seq_show(struct seq_file *seq); |
| 36 | #endif | 38 | #endif |
| 37 | 39 | ||
| 38 | typedef unsigned short sa_family_t; | 40 | typedef __kernel_sa_family_t sa_family_t; |
| 39 | 41 | ||
| 40 | /* | 42 | /* |
| 41 | * 1003.1g requires sa_family_t and that sa_data is char. | 43 | * 1003.1g requires sa_family_t and that sa_data is char. |
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 |
