diff options
| author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-03-08 11:49:24 -0500 |
|---|---|---|
| committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-03-08 11:49:24 -0500 |
| commit | 9446389ef612096704fdf18fa79bab423d4110f0 (patch) | |
| tree | 3e4fda7270be58ae176d20d318e61fb115b325b5 /include/linux | |
| parent | cdd0972945dbcb8ea24db365d9b0e100af2a27bb (diff) | |
| parent | 84c6f6046c5a2189160a8f0dca8b90427bf690ea (diff) | |
Merge commit 'origin' into devel
Diffstat (limited to 'include/linux')
38 files changed, 341 insertions, 96 deletions
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index aada32fffec2..994df3780007 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
| @@ -61,6 +61,7 @@ header-y += efs_fs_sb.h | |||
| 61 | header-y += elf-fdpic.h | 61 | header-y += elf-fdpic.h |
| 62 | header-y += elf-em.h | 62 | header-y += elf-em.h |
| 63 | header-y += fadvise.h | 63 | header-y += fadvise.h |
| 64 | header-y += falloc.h | ||
| 64 | header-y += fd.h | 65 | header-y += fd.h |
| 65 | header-y += fdreg.h | 66 | header-y += fdreg.h |
| 66 | header-y += fib_rules.h | 67 | header-y += fib_rules.h |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 6fe67d1939c2..6f79d40dd3c0 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -216,8 +216,8 @@ struct request { | |||
| 216 | unsigned int cmd_len; | 216 | unsigned int cmd_len; |
| 217 | unsigned char cmd[BLK_MAX_CDB]; | 217 | unsigned char cmd[BLK_MAX_CDB]; |
| 218 | 218 | ||
| 219 | unsigned int raw_data_len; | ||
| 220 | unsigned int data_len; | 219 | unsigned int data_len; |
| 220 | unsigned int extra_len; /* length of alignment and padding */ | ||
| 221 | unsigned int sense_len; | 221 | unsigned int sense_len; |
| 222 | void *data; | 222 | void *data; |
| 223 | void *sense; | 223 | void *sense; |
| @@ -362,6 +362,7 @@ struct request_queue | |||
| 362 | unsigned long seg_boundary_mask; | 362 | unsigned long seg_boundary_mask; |
| 363 | void *dma_drain_buffer; | 363 | void *dma_drain_buffer; |
| 364 | unsigned int dma_drain_size; | 364 | unsigned int dma_drain_size; |
| 365 | unsigned int dma_pad_mask; | ||
| 365 | unsigned int dma_alignment; | 366 | unsigned int dma_alignment; |
| 366 | 367 | ||
| 367 | struct blk_queue_tag *queue_tags; | 368 | struct blk_queue_tag *queue_tags; |
| @@ -701,6 +702,7 @@ extern void blk_queue_max_hw_segments(struct request_queue *, unsigned short); | |||
| 701 | extern void blk_queue_max_segment_size(struct request_queue *, unsigned int); | 702 | extern void blk_queue_max_segment_size(struct request_queue *, unsigned int); |
| 702 | extern void blk_queue_hardsect_size(struct request_queue *, unsigned short); | 703 | extern void blk_queue_hardsect_size(struct request_queue *, unsigned short); |
| 703 | extern void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b); | 704 | extern void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b); |
| 705 | extern void blk_queue_dma_pad(struct request_queue *, unsigned int); | ||
| 704 | extern int blk_queue_dma_drain(struct request_queue *q, | 706 | extern int blk_queue_dma_drain(struct request_queue *q, |
| 705 | dma_drain_needed_fn *dma_drain_needed, | 707 | dma_drain_needed_fn *dma_drain_needed, |
| 706 | void *buf, unsigned int size); | 708 | void *buf, unsigned int size); |
diff --git a/include/linux/cgroup_subsys.h b/include/linux/cgroup_subsys.h index ac6aad98b607..1ddebfc52565 100644 --- a/include/linux/cgroup_subsys.h +++ b/include/linux/cgroup_subsys.h | |||
| @@ -37,7 +37,7 @@ SUBSYS(cpuacct) | |||
| 37 | 37 | ||
| 38 | /* */ | 38 | /* */ |
| 39 | 39 | ||
| 40 | #ifdef CONFIG_CGROUP_MEM_CONT | 40 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR |
| 41 | SUBSYS(mem_cgroup) | 41 | SUBSYS(mem_cgroup) |
| 42 | #endif | 42 | #endif |
| 43 | 43 | ||
diff --git a/include/linux/compiler.h b/include/linux/compiler.h index d0e17e1657dc..dcae0c8d97e6 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h | |||
| @@ -138,6 +138,12 @@ extern void __chk_io_ptr(const volatile void __iomem *); | |||
| 138 | #define noinline | 138 | #define noinline |
| 139 | #endif | 139 | #endif |
| 140 | 140 | ||
| 141 | /* | ||
| 142 | * Rather then using noinline to prevent stack consumption, use | ||
| 143 | * noinline_for_stack instead. For documentaiton reasons. | ||
| 144 | */ | ||
| 145 | #define noinline_for_stack noinline | ||
| 146 | |||
| 141 | #ifndef __always_inline | 147 | #ifndef __always_inline |
| 142 | #define __always_inline inline | 148 | #define __always_inline inline |
| 143 | #endif | 149 | #endif |
diff --git a/include/linux/connector.h b/include/linux/connector.h index da6dd957f908..96a89d3d6727 100644 --- a/include/linux/connector.h +++ b/include/linux/connector.h | |||
| @@ -170,7 +170,5 @@ int cn_cb_equal(struct cb_id *, struct cb_id *); | |||
| 170 | 170 | ||
| 171 | void cn_queue_wrapper(struct work_struct *work); | 171 | void cn_queue_wrapper(struct work_struct *work); |
| 172 | 172 | ||
| 173 | extern int cn_already_initialized; | ||
| 174 | |||
| 175 | #endif /* __KERNEL__ */ | 173 | #endif /* __KERNEL__ */ |
| 176 | #endif /* __CONNECTOR_H */ | 174 | #endif /* __CONNECTOR_H */ |
diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h index f592d6de3b97..7266124361b4 100644 --- a/include/linux/debugfs.h +++ b/include/linux/debugfs.h | |||
| @@ -27,6 +27,11 @@ struct debugfs_blob_wrapper { | |||
| 27 | }; | 27 | }; |
| 28 | 28 | ||
| 29 | #if defined(CONFIG_DEBUG_FS) | 29 | #if defined(CONFIG_DEBUG_FS) |
| 30 | |||
| 31 | /* declared over in file.c */ | ||
| 32 | extern const struct file_operations debugfs_file_operations; | ||
| 33 | extern const struct inode_operations debugfs_link_operations; | ||
| 34 | |||
| 30 | struct dentry *debugfs_create_file(const char *name, mode_t mode, | 35 | struct dentry *debugfs_create_file(const char *name, mode_t mode, |
| 31 | struct dentry *parent, void *data, | 36 | struct dentry *parent, void *data, |
| 32 | const struct file_operations *fops); | 37 | const struct file_operations *fops); |
diff --git a/include/linux/delay.h b/include/linux/delay.h index 17ddb55430ae..54552d21296e 100644 --- a/include/linux/delay.h +++ b/include/linux/delay.h | |||
| @@ -7,6 +7,8 @@ | |||
| 7 | * Delay routines, using a pre-computed "loops_per_jiffy" value. | 7 | * Delay routines, using a pre-computed "loops_per_jiffy" value. |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include <linux/kernel.h> | ||
| 11 | |||
| 10 | extern unsigned long loops_per_jiffy; | 12 | extern unsigned long loops_per_jiffy; |
| 11 | 13 | ||
| 12 | #include <asm/delay.h> | 14 | #include <asm/delay.h> |
| @@ -32,7 +34,11 @@ extern unsigned long loops_per_jiffy; | |||
| 32 | #endif | 34 | #endif |
| 33 | 35 | ||
| 34 | #ifndef ndelay | 36 | #ifndef ndelay |
| 35 | #define ndelay(x) udelay(((x)+999)/1000) | 37 | static inline void ndelay(unsigned long x) |
| 38 | { | ||
| 39 | udelay(DIV_ROUND_UP(x, 1000)); | ||
| 40 | } | ||
| 41 | #define ndelay(x) ndelay(x) | ||
| 36 | #endif | 42 | #endif |
| 37 | 43 | ||
| 38 | void calibrate_delay(void); | 44 | void calibrate_delay(void); |
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index acbb364674ff..261e43a4c873 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
| @@ -366,7 +366,7 @@ __dma_has_cap(enum dma_transaction_type tx_type, dma_cap_mask_t *srcp) | |||
| 366 | */ | 366 | */ |
| 367 | static inline void dma_async_issue_pending(struct dma_chan *chan) | 367 | static inline void dma_async_issue_pending(struct dma_chan *chan) |
| 368 | { | 368 | { |
| 369 | return chan->device->device_issue_pending(chan); | 369 | chan->device->device_issue_pending(chan); |
| 370 | } | 370 | } |
| 371 | 371 | ||
| 372 | #define dma_async_memcpy_issue_pending(chan) dma_async_issue_pending(chan) | 372 | #define dma_async_memcpy_issue_pending(chan) dma_async_issue_pending(chan) |
diff --git a/include/linux/elfcore-compat.h b/include/linux/elfcore-compat.h index 532d13adabc4..0a90e1c3a422 100644 --- a/include/linux/elfcore-compat.h +++ b/include/linux/elfcore-compat.h | |||
| @@ -45,8 +45,8 @@ struct compat_elf_prpsinfo | |||
| 45 | char pr_zomb; | 45 | char pr_zomb; |
| 46 | char pr_nice; | 46 | char pr_nice; |
| 47 | compat_ulong_t pr_flag; | 47 | compat_ulong_t pr_flag; |
| 48 | compat_uid_t pr_uid; | 48 | __compat_uid_t pr_uid; |
| 49 | compat_gid_t pr_gid; | 49 | __compat_gid_t pr_gid; |
| 50 | compat_pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid; | 50 | compat_pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid; |
| 51 | char pr_fname[16]; | 51 | char pr_fname[16]; |
| 52 | char pr_psargs[ELF_PRARGSZ]; | 52 | char pr_psargs[ELF_PRARGSZ]; |
diff --git a/include/linux/ext4_fs_extents.h b/include/linux/ext4_fs_extents.h index 697da4bce6c5..1285c583b2d8 100644 --- a/include/linux/ext4_fs_extents.h +++ b/include/linux/ext4_fs_extents.h | |||
| @@ -227,5 +227,6 @@ extern int ext4_ext_search_left(struct inode *, struct ext4_ext_path *, | |||
| 227 | ext4_lblk_t *, ext4_fsblk_t *); | 227 | ext4_lblk_t *, ext4_fsblk_t *); |
| 228 | extern int ext4_ext_search_right(struct inode *, struct ext4_ext_path *, | 228 | extern int ext4_ext_search_right(struct inode *, struct ext4_ext_path *, |
| 229 | ext4_lblk_t *, ext4_fsblk_t *); | 229 | ext4_lblk_t *, ext4_fsblk_t *); |
| 230 | extern void ext4_ext_drop_refs(struct ext4_ext_path *); | ||
| 230 | #endif /* _LINUX_EXT4_EXTENTS */ | 231 | #endif /* _LINUX_EXT4_EXTENTS */ |
| 231 | 232 | ||
diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 09a3b18918c7..32c2ac49a070 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h | |||
| @@ -18,11 +18,13 @@ | |||
| 18 | #define dev_to_disk(device) container_of(device, struct gendisk, dev) | 18 | #define dev_to_disk(device) container_of(device, struct gendisk, dev) |
| 19 | #define dev_to_part(device) container_of(device, struct hd_struct, dev) | 19 | #define dev_to_part(device) container_of(device, struct hd_struct, dev) |
| 20 | 20 | ||
| 21 | extern struct device_type disk_type; | ||
| 22 | extern struct device_type part_type; | 21 | extern struct device_type part_type; |
| 23 | extern struct kobject *block_depr; | 22 | extern struct kobject *block_depr; |
| 24 | extern struct class block_class; | 23 | extern struct class block_class; |
| 25 | 24 | ||
| 25 | extern const struct seq_operations partitions_op; | ||
| 26 | extern const struct seq_operations diskstats_op; | ||
| 27 | |||
| 26 | enum { | 28 | enum { |
| 27 | /* These three have identical behaviour; use the second one if DOS FDISK gets | 29 | /* These three have identical behaviour; use the second one if DOS FDISK gets |
| 28 | confused about extended/logical partitions starting past cylinder 1023. */ | 30 | confused about extended/logical partitions starting past cylinder 1023. */ |
| @@ -556,7 +558,6 @@ extern struct gendisk *alloc_disk_node(int minors, int node_id); | |||
| 556 | extern struct gendisk *alloc_disk(int minors); | 558 | extern struct gendisk *alloc_disk(int minors); |
| 557 | extern struct kobject *get_disk(struct gendisk *disk); | 559 | extern struct kobject *get_disk(struct gendisk *disk); |
| 558 | extern void put_disk(struct gendisk *disk); | 560 | extern void put_disk(struct gendisk *disk); |
| 559 | extern void genhd_media_change_notify(struct gendisk *disk); | ||
| 560 | extern void blk_register_region(dev_t devt, unsigned long range, | 561 | extern void blk_register_region(dev_t devt, unsigned long range, |
| 561 | struct module *module, | 562 | struct module *module, |
| 562 | struct kobject *(*probe)(dev_t, int *, void *), | 563 | struct kobject *(*probe)(dev_t, int *, void *), |
diff --git a/include/linux/gpio.h b/include/linux/gpio.h new file mode 100644 index 000000000000..4987a84078ef --- /dev/null +++ b/include/linux/gpio.h | |||
| @@ -0,0 +1,95 @@ | |||
| 1 | #ifndef __LINUX_GPIO_H | ||
| 2 | #define __LINUX_GPIO_H | ||
| 3 | |||
| 4 | /* see Documentation/gpio.txt */ | ||
| 5 | |||
| 6 | #ifdef CONFIG_GENERIC_GPIO | ||
| 7 | #include <asm/gpio.h> | ||
| 8 | |||
| 9 | #else | ||
| 10 | |||
| 11 | /* | ||
| 12 | * Some platforms don't support the GPIO programming interface. | ||
| 13 | * | ||
| 14 | * In case some driver uses it anyway (it should normally have | ||
| 15 | * depended on GENERIC_GPIO), these routines help the compiler | ||
| 16 | * optimize out much GPIO-related code ... or trigger a runtime | ||
| 17 | * warning when something is wrongly called. | ||
| 18 | */ | ||
| 19 | |||
| 20 | static inline int gpio_is_valid(int number) | ||
| 21 | { | ||
| 22 | return 0; | ||
| 23 | } | ||
| 24 | |||
| 25 | static inline int gpio_request(unsigned gpio, const char *label) | ||
| 26 | { | ||
| 27 | return -ENOSYS; | ||
| 28 | } | ||
| 29 | |||
| 30 | static inline void gpio_free(unsigned gpio) | ||
| 31 | { | ||
| 32 | /* GPIO can never have been requested */ | ||
| 33 | WARN_ON(1); | ||
| 34 | } | ||
| 35 | |||
| 36 | static inline int gpio_direction_input(unsigned gpio) | ||
| 37 | { | ||
| 38 | return -ENOSYS; | ||
| 39 | } | ||
| 40 | |||
| 41 | static inline int gpio_direction_output(unsigned gpio, int value) | ||
| 42 | { | ||
| 43 | return -ENOSYS; | ||
| 44 | } | ||
| 45 | |||
| 46 | static inline int gpio_get_value(unsigned gpio) | ||
| 47 | { | ||
| 48 | /* GPIO can never have been requested or set as {in,out}put */ | ||
| 49 | WARN_ON(1); | ||
| 50 | return 0; | ||
| 51 | } | ||
| 52 | |||
| 53 | static inline void gpio_set_value(unsigned gpio, int value) | ||
| 54 | { | ||
| 55 | /* GPIO can never have been requested or set as output */ | ||
| 56 | WARN_ON(1); | ||
| 57 | } | ||
| 58 | |||
| 59 | static inline int gpio_cansleep(unsigned gpio) | ||
| 60 | { | ||
| 61 | /* GPIO can never have been requested or set as {in,out}put */ | ||
| 62 | WARN_ON(1); | ||
| 63 | return 0; | ||
| 64 | } | ||
| 65 | |||
| 66 | static inline int gpio_get_value_cansleep(unsigned gpio) | ||
| 67 | { | ||
| 68 | /* GPIO can never have been requested or set as {in,out}put */ | ||
| 69 | WARN_ON(1); | ||
| 70 | return 0; | ||
| 71 | } | ||
| 72 | |||
| 73 | static inline void gpio_set_value_cansleep(unsigned gpio, int value) | ||
| 74 | { | ||
| 75 | /* GPIO can never have been requested or set as output */ | ||
| 76 | WARN_ON(1); | ||
| 77 | } | ||
| 78 | |||
| 79 | static inline int gpio_to_irq(unsigned gpio) | ||
| 80 | { | ||
| 81 | /* GPIO can never have been requested or set as input */ | ||
| 82 | WARN_ON(1); | ||
| 83 | return -EINVAL; | ||
| 84 | } | ||
| 85 | |||
| 86 | static inline int irq_to_gpio(unsigned irq) | ||
| 87 | { | ||
| 88 | /* irq can never have been returned from gpio_to_irq() */ | ||
| 89 | WARN_ON(1); | ||
| 90 | return -EINVAL; | ||
| 91 | } | ||
| 92 | |||
| 93 | #endif | ||
| 94 | |||
| 95 | #endif /* __LINUX_GPIO_H */ | ||
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h index 2961ec788046..49829988bfa0 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h | |||
| @@ -109,6 +109,14 @@ static inline void account_system_vtime(struct task_struct *tsk) | |||
| 109 | } | 109 | } |
| 110 | #endif | 110 | #endif |
| 111 | 111 | ||
| 112 | #if defined(CONFIG_PREEMPT_RCU) && defined(CONFIG_NO_HZ) | ||
| 113 | extern void rcu_irq_enter(void); | ||
| 114 | extern void rcu_irq_exit(void); | ||
| 115 | #else | ||
| 116 | # define rcu_irq_enter() do { } while (0) | ||
| 117 | # define rcu_irq_exit() do { } while (0) | ||
| 118 | #endif /* CONFIG_PREEMPT_RCU */ | ||
| 119 | |||
| 112 | /* | 120 | /* |
| 113 | * It is safe to do non-atomic ops on ->hardirq_context, | 121 | * It is safe to do non-atomic ops on ->hardirq_context, |
| 114 | * because NMI handlers may not preempt and the ops are | 122 | * because NMI handlers may not preempt and the ops are |
| @@ -117,6 +125,7 @@ static inline void account_system_vtime(struct task_struct *tsk) | |||
| 117 | */ | 125 | */ |
| 118 | #define __irq_enter() \ | 126 | #define __irq_enter() \ |
| 119 | do { \ | 127 | do { \ |
| 128 | rcu_irq_enter(); \ | ||
| 120 | account_system_vtime(current); \ | 129 | account_system_vtime(current); \ |
| 121 | add_preempt_count(HARDIRQ_OFFSET); \ | 130 | add_preempt_count(HARDIRQ_OFFSET); \ |
| 122 | trace_hardirq_enter(); \ | 131 | trace_hardirq_enter(); \ |
| @@ -135,6 +144,7 @@ extern void irq_enter(void); | |||
| 135 | trace_hardirq_exit(); \ | 144 | trace_hardirq_exit(); \ |
| 136 | account_system_vtime(current); \ | 145 | account_system_vtime(current); \ |
| 137 | sub_preempt_count(HARDIRQ_OFFSET); \ | 146 | sub_preempt_count(HARDIRQ_OFFSET); \ |
| 147 | rcu_irq_exit(); \ | ||
| 138 | } while (0) | 148 | } while (0) |
| 139 | 149 | ||
| 140 | /* | 150 | /* |
diff --git a/include/linux/iommu-helper.h b/include/linux/iommu-helper.h index 4dd4c04ff2f4..c975caf75385 100644 --- a/include/linux/iommu-helper.h +++ b/include/linux/iommu-helper.h | |||
| @@ -1,3 +1,6 @@ | |||
| 1 | extern int iommu_is_span_boundary(unsigned int index, unsigned int nr, | ||
| 2 | unsigned long shift, | ||
| 3 | unsigned long boundary_size); | ||
| 1 | extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size, | 4 | extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size, |
| 2 | unsigned long start, unsigned int nr, | 5 | unsigned long start, unsigned int nr, |
| 3 | unsigned long shift, | 6 | unsigned long shift, |
diff --git a/include/linux/kprobes.h b/include/linux/kprobes.h index 4a6ce82ba039..0f28486f6360 100644 --- a/include/linux/kprobes.h +++ b/include/linux/kprobes.h | |||
| @@ -125,11 +125,11 @@ struct jprobe { | |||
| 125 | DECLARE_PER_CPU(struct kprobe *, current_kprobe); | 125 | DECLARE_PER_CPU(struct kprobe *, current_kprobe); |
| 126 | DECLARE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); | 126 | DECLARE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); |
| 127 | 127 | ||
| 128 | #ifdef ARCH_SUPPORTS_KRETPROBES | 128 | #ifdef CONFIG_KRETPROBES |
| 129 | extern void arch_prepare_kretprobe(struct kretprobe_instance *ri, | 129 | extern void arch_prepare_kretprobe(struct kretprobe_instance *ri, |
| 130 | struct pt_regs *regs); | 130 | struct pt_regs *regs); |
| 131 | extern int arch_trampoline_kprobe(struct kprobe *p); | 131 | extern int arch_trampoline_kprobe(struct kprobe *p); |
| 132 | #else /* ARCH_SUPPORTS_KRETPROBES */ | 132 | #else /* CONFIG_KRETPROBES */ |
| 133 | static inline void arch_prepare_kretprobe(struct kretprobe *rp, | 133 | static inline void arch_prepare_kretprobe(struct kretprobe *rp, |
| 134 | struct pt_regs *regs) | 134 | struct pt_regs *regs) |
| 135 | { | 135 | { |
| @@ -138,7 +138,7 @@ static inline int arch_trampoline_kprobe(struct kprobe *p) | |||
| 138 | { | 138 | { |
| 139 | return 0; | 139 | return 0; |
| 140 | } | 140 | } |
| 141 | #endif /* ARCH_SUPPORTS_KRETPROBES */ | 141 | #endif /* CONFIG_KRETPROBES */ |
| 142 | /* | 142 | /* |
| 143 | * Function-return probe - | 143 | * Function-return probe - |
| 144 | * Note: | 144 | * Note: |
diff --git a/include/linux/kvm.h b/include/linux/kvm.h index 4de4fd2d8607..c1ec04fd000d 100644 --- a/include/linux/kvm.h +++ b/include/linux/kvm.h | |||
| @@ -221,6 +221,7 @@ struct kvm_vapic_addr { | |||
| 221 | * Get size for mmap(vcpu_fd) | 221 | * Get size for mmap(vcpu_fd) |
| 222 | */ | 222 | */ |
| 223 | #define KVM_GET_VCPU_MMAP_SIZE _IO(KVMIO, 0x04) /* in bytes */ | 223 | #define KVM_GET_VCPU_MMAP_SIZE _IO(KVMIO, 0x04) /* in bytes */ |
| 224 | #define KVM_GET_SUPPORTED_CPUID _IOWR(KVMIO, 0x05, struct kvm_cpuid2) | ||
| 224 | 225 | ||
| 225 | /* | 226 | /* |
| 226 | * Extension capability list. | 227 | * Extension capability list. |
| @@ -230,8 +231,8 @@ struct kvm_vapic_addr { | |||
| 230 | #define KVM_CAP_MMU_SHADOW_CACHE_CONTROL 2 | 231 | #define KVM_CAP_MMU_SHADOW_CACHE_CONTROL 2 |
| 231 | #define KVM_CAP_USER_MEMORY 3 | 232 | #define KVM_CAP_USER_MEMORY 3 |
| 232 | #define KVM_CAP_SET_TSS_ADDR 4 | 233 | #define KVM_CAP_SET_TSS_ADDR 4 |
| 233 | #define KVM_CAP_EXT_CPUID 5 | ||
| 234 | #define KVM_CAP_VAPIC 6 | 234 | #define KVM_CAP_VAPIC 6 |
| 235 | #define KVM_CAP_EXT_CPUID 7 | ||
| 235 | 236 | ||
| 236 | /* | 237 | /* |
| 237 | * ioctls for VM fds | 238 | * ioctls for VM fds |
| @@ -249,7 +250,6 @@ struct kvm_vapic_addr { | |||
| 249 | #define KVM_CREATE_VCPU _IO(KVMIO, 0x41) | 250 | #define KVM_CREATE_VCPU _IO(KVMIO, 0x41) |
| 250 | #define KVM_GET_DIRTY_LOG _IOW(KVMIO, 0x42, struct kvm_dirty_log) | 251 | #define KVM_GET_DIRTY_LOG _IOW(KVMIO, 0x42, struct kvm_dirty_log) |
| 251 | #define KVM_SET_MEMORY_ALIAS _IOW(KVMIO, 0x43, struct kvm_memory_alias) | 252 | #define KVM_SET_MEMORY_ALIAS _IOW(KVMIO, 0x43, struct kvm_memory_alias) |
| 252 | #define KVM_GET_SUPPORTED_CPUID _IOWR(KVMIO, 0x48, struct kvm_cpuid2) | ||
| 253 | /* Device model IOC */ | 253 | /* Device model IOC */ |
| 254 | #define KVM_CREATE_IRQCHIP _IO(KVMIO, 0x60) | 254 | #define KVM_CREATE_IRQCHIP _IO(KVMIO, 0x60) |
| 255 | #define KVM_IRQ_LINE _IOW(KVMIO, 0x61, struct kvm_irq_level) | 255 | #define KVM_IRQ_LINE _IOW(KVMIO, 0x61, struct kvm_irq_level) |
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index ea4764b0a2f4..928b0d59e9ba 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h | |||
| @@ -107,6 +107,7 @@ struct kvm_memory_slot { | |||
| 107 | struct kvm { | 107 | struct kvm { |
| 108 | struct mutex lock; /* protects the vcpus array and APIC accesses */ | 108 | struct mutex lock; /* protects the vcpus array and APIC accesses */ |
| 109 | spinlock_t mmu_lock; | 109 | spinlock_t mmu_lock; |
| 110 | struct rw_semaphore slots_lock; | ||
| 110 | struct mm_struct *mm; /* userspace tied to this vm */ | 111 | struct mm_struct *mm; /* userspace tied to this vm */ |
| 111 | int nmemslots; | 112 | int nmemslots; |
| 112 | struct kvm_memory_slot memslots[KVM_MEMORY_SLOTS + | 113 | struct kvm_memory_slot memslots[KVM_MEMORY_SLOTS + |
diff --git a/include/linux/maple.h b/include/linux/maple.h index 3f01e2bae1a1..d31e36ebb436 100644 --- a/include/linux/maple.h +++ b/include/linux/maple.h | |||
| @@ -64,7 +64,6 @@ struct maple_driver { | |||
| 64 | int (*connect) (struct maple_device * dev); | 64 | int (*connect) (struct maple_device * dev); |
| 65 | void (*disconnect) (struct maple_device * dev); | 65 | void (*disconnect) (struct maple_device * dev); |
| 66 | struct device_driver drv; | 66 | struct device_driver drv; |
| 67 | int registered; | ||
| 68 | }; | 67 | }; |
| 69 | 68 | ||
| 70 | void maple_getcond_callback(struct maple_device *dev, | 69 | void maple_getcond_callback(struct maple_device *dev, |
diff --git a/include/linux/marker.h b/include/linux/marker.h index 5df879dc3776..430f6adf9762 100644 --- a/include/linux/marker.h +++ b/include/linux/marker.h | |||
| @@ -104,10 +104,16 @@ static inline void marker_update_probe_range(struct marker *begin, | |||
| 104 | #define MARK_NOARGS " " | 104 | #define MARK_NOARGS " " |
| 105 | 105 | ||
| 106 | /* To be used for string format validity checking with gcc */ | 106 | /* To be used for string format validity checking with gcc */ |
| 107 | static inline void __printf(1, 2) __mark_check_format(const char *fmt, ...) | 107 | static inline void __printf(1, 2) ___mark_check_format(const char *fmt, ...) |
| 108 | { | 108 | { |
| 109 | } | 109 | } |
| 110 | 110 | ||
| 111 | #define __mark_check_format(format, args...) \ | ||
| 112 | do { \ | ||
| 113 | if (0) \ | ||
| 114 | ___mark_check_format(format, ## args); \ | ||
| 115 | } while (0) | ||
| 116 | |||
| 111 | extern marker_probe_func __mark_empty_function; | 117 | extern marker_probe_func __mark_empty_function; |
| 112 | 118 | ||
| 113 | extern void marker_probe_cb(const struct marker *mdata, | 119 | extern void marker_probe_cb(const struct marker *mdata, |
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 04075628cb9a..8b1c4295848b 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h | |||
| @@ -25,18 +25,20 @@ struct page_cgroup; | |||
| 25 | struct page; | 25 | struct page; |
| 26 | struct mm_struct; | 26 | struct mm_struct; |
| 27 | 27 | ||
| 28 | #ifdef CONFIG_CGROUP_MEM_CONT | 28 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR |
| 29 | 29 | ||
| 30 | extern void mm_init_cgroup(struct mm_struct *mm, struct task_struct *p); | 30 | extern void mm_init_cgroup(struct mm_struct *mm, struct task_struct *p); |
| 31 | extern void mm_free_cgroup(struct mm_struct *mm); | 31 | extern void mm_free_cgroup(struct mm_struct *mm); |
| 32 | extern void page_assign_page_cgroup(struct page *page, | 32 | |
| 33 | struct page_cgroup *pc); | 33 | #define page_reset_bad_cgroup(page) ((page)->page_cgroup = 0) |
| 34 | |||
| 34 | extern struct page_cgroup *page_get_page_cgroup(struct page *page); | 35 | extern struct page_cgroup *page_get_page_cgroup(struct page *page); |
| 35 | extern int mem_cgroup_charge(struct page *page, struct mm_struct *mm, | 36 | extern int mem_cgroup_charge(struct page *page, struct mm_struct *mm, |
| 36 | gfp_t gfp_mask); | 37 | gfp_t gfp_mask); |
| 37 | extern void mem_cgroup_uncharge(struct page_cgroup *pc); | 38 | extern int mem_cgroup_cache_charge(struct page *page, struct mm_struct *mm, |
| 39 | gfp_t gfp_mask); | ||
| 38 | extern void mem_cgroup_uncharge_page(struct page *page); | 40 | extern void mem_cgroup_uncharge_page(struct page *page); |
| 39 | extern void mem_cgroup_move_lists(struct page_cgroup *pc, bool active); | 41 | extern void mem_cgroup_move_lists(struct page *page, bool active); |
| 40 | extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan, | 42 | extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan, |
| 41 | struct list_head *dst, | 43 | struct list_head *dst, |
| 42 | unsigned long *scanned, int order, | 44 | unsigned long *scanned, int order, |
| @@ -44,11 +46,9 @@ extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan, | |||
| 44 | struct mem_cgroup *mem_cont, | 46 | struct mem_cgroup *mem_cont, |
| 45 | int active); | 47 | int active); |
| 46 | extern void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask); | 48 | extern void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask); |
| 47 | extern int mem_cgroup_cache_charge(struct page *page, struct mm_struct *mm, | ||
| 48 | gfp_t gfp_mask); | ||
| 49 | int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *mem); | 49 | int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *mem); |
| 50 | 50 | ||
| 51 | #define vm_match_cgroup(mm, cgroup) \ | 51 | #define mm_match_cgroup(mm, cgroup) \ |
| 52 | ((cgroup) == rcu_dereference((mm)->mem_cgroup)) | 52 | ((cgroup) == rcu_dereference((mm)->mem_cgroup)) |
| 53 | 53 | ||
| 54 | extern int mem_cgroup_prepare_migration(struct page *page); | 54 | extern int mem_cgroup_prepare_migration(struct page *page); |
| @@ -72,7 +72,7 @@ extern long mem_cgroup_calc_reclaim_active(struct mem_cgroup *mem, | |||
| 72 | extern long mem_cgroup_calc_reclaim_inactive(struct mem_cgroup *mem, | 72 | extern long mem_cgroup_calc_reclaim_inactive(struct mem_cgroup *mem, |
| 73 | struct zone *zone, int priority); | 73 | struct zone *zone, int priority); |
| 74 | 74 | ||
| 75 | #else /* CONFIG_CGROUP_MEM_CONT */ | 75 | #else /* CONFIG_CGROUP_MEM_RES_CTLR */ |
| 76 | static inline void mm_init_cgroup(struct mm_struct *mm, | 76 | static inline void mm_init_cgroup(struct mm_struct *mm, |
| 77 | struct task_struct *p) | 77 | struct task_struct *p) |
| 78 | { | 78 | { |
| @@ -82,8 +82,7 @@ static inline void mm_free_cgroup(struct mm_struct *mm) | |||
| 82 | { | 82 | { |
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | static inline void page_assign_page_cgroup(struct page *page, | 85 | static inline void page_reset_bad_cgroup(struct page *page) |
| 86 | struct page_cgroup *pc) | ||
| 87 | { | 86 | { |
| 88 | } | 87 | } |
| 89 | 88 | ||
| @@ -92,33 +91,27 @@ static inline struct page_cgroup *page_get_page_cgroup(struct page *page) | |||
| 92 | return NULL; | 91 | return NULL; |
| 93 | } | 92 | } |
| 94 | 93 | ||
| 95 | static inline int mem_cgroup_charge(struct page *page, struct mm_struct *mm, | 94 | static inline int mem_cgroup_charge(struct page *page, |
| 96 | gfp_t gfp_mask) | 95 | struct mm_struct *mm, gfp_t gfp_mask) |
| 97 | { | 96 | { |
| 98 | return 0; | 97 | return 0; |
| 99 | } | 98 | } |
| 100 | 99 | ||
| 101 | static inline void mem_cgroup_uncharge(struct page_cgroup *pc) | 100 | static inline int mem_cgroup_cache_charge(struct page *page, |
| 101 | struct mm_struct *mm, gfp_t gfp_mask) | ||
| 102 | { | 102 | { |
| 103 | return 0; | ||
| 103 | } | 104 | } |
| 104 | 105 | ||
| 105 | static inline void mem_cgroup_uncharge_page(struct page *page) | 106 | static inline void mem_cgroup_uncharge_page(struct page *page) |
| 106 | { | 107 | { |
| 107 | } | 108 | } |
| 108 | 109 | ||
| 109 | static inline void mem_cgroup_move_lists(struct page_cgroup *pc, | 110 | static inline void mem_cgroup_move_lists(struct page *page, bool active) |
| 110 | bool active) | ||
| 111 | { | ||
| 112 | } | ||
| 113 | |||
| 114 | static inline int mem_cgroup_cache_charge(struct page *page, | ||
| 115 | struct mm_struct *mm, | ||
| 116 | gfp_t gfp_mask) | ||
| 117 | { | 111 | { |
| 118 | return 0; | ||
| 119 | } | 112 | } |
| 120 | 113 | ||
| 121 | static inline int vm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *mem) | 114 | static inline int mm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *mem) |
| 122 | { | 115 | { |
| 123 | return 1; | 116 | return 1; |
| 124 | } | 117 | } |
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index bfee0bd1d435..af190ceab971 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h | |||
| @@ -64,10 +64,7 @@ struct page { | |||
| 64 | #if NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS | 64 | #if NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS |
| 65 | spinlock_t ptl; | 65 | spinlock_t ptl; |
| 66 | #endif | 66 | #endif |
| 67 | struct { | 67 | struct kmem_cache *slab; /* SLUB: Pointer to slab */ |
| 68 | struct kmem_cache *slab; /* SLUB: Pointer to slab */ | ||
| 69 | void *end; /* SLUB: end marker */ | ||
| 70 | }; | ||
| 71 | struct page *first_page; /* Compound tail pages */ | 68 | struct page *first_page; /* Compound tail pages */ |
| 72 | }; | 69 | }; |
| 73 | union { | 70 | union { |
| @@ -91,7 +88,7 @@ struct page { | |||
| 91 | void *virtual; /* Kernel virtual address (NULL if | 88 | void *virtual; /* Kernel virtual address (NULL if |
| 92 | not kmapped, ie. highmem) */ | 89 | not kmapped, ie. highmem) */ |
| 93 | #endif /* WANT_PAGE_VIRTUAL */ | 90 | #endif /* WANT_PAGE_VIRTUAL */ |
| 94 | #ifdef CONFIG_CGROUP_MEM_CONT | 91 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR |
| 95 | unsigned long page_cgroup; | 92 | unsigned long page_cgroup; |
| 96 | #endif | 93 | #endif |
| 97 | }; | 94 | }; |
| @@ -225,7 +222,7 @@ struct mm_struct { | |||
| 225 | /* aio bits */ | 222 | /* aio bits */ |
| 226 | rwlock_t ioctx_list_lock; | 223 | rwlock_t ioctx_list_lock; |
| 227 | struct kioctx *ioctx_list; | 224 | struct kioctx *ioctx_list; |
| 228 | #ifdef CONFIG_CGROUP_MEM_CONT | 225 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR |
| 229 | struct mem_cgroup *mem_cgroup; | 226 | struct mem_cgroup *mem_cgroup; |
| 230 | #endif | 227 | #endif |
| 231 | }; | 228 | }; |
diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h index b74b615492e8..f0680c2bee73 100644 --- a/include/linux/netfilter.h +++ b/include/linux/netfilter.h | |||
| @@ -31,7 +31,7 @@ | |||
| 31 | #define NF_VERDICT_QMASK 0xffff0000 | 31 | #define NF_VERDICT_QMASK 0xffff0000 |
| 32 | #define NF_VERDICT_QBITS 16 | 32 | #define NF_VERDICT_QBITS 16 |
| 33 | 33 | ||
| 34 | #define NF_QUEUE_NR(x) (((x << NF_VERDICT_QBITS) & NF_VERDICT_QMASK) | NF_QUEUE) | 34 | #define NF_QUEUE_NR(x) ((((x) << NF_VERDICT_BITS) & NF_VERDICT_QMASK) | NF_QUEUE) |
| 35 | 35 | ||
| 36 | /* only for userspace compatibility */ | 36 | /* only for userspace compatibility */ |
| 37 | #ifndef __KERNEL__ | 37 | #ifndef __KERNEL__ |
diff --git a/include/linux/netpoll.h b/include/linux/netpoll.h index a0525a1f4715..e3d79593fb3a 100644 --- a/include/linux/netpoll.h +++ b/include/linux/netpoll.h | |||
| @@ -25,6 +25,7 @@ struct netpoll { | |||
| 25 | 25 | ||
| 26 | struct netpoll_info { | 26 | struct netpoll_info { |
| 27 | atomic_t refcnt; | 27 | atomic_t refcnt; |
| 28 | int rx_flags; | ||
| 28 | spinlock_t rx_lock; | 29 | spinlock_t rx_lock; |
| 29 | struct netpoll *rx_np; /* netpoll that registered an rx_hook */ | 30 | struct netpoll *rx_np; /* netpoll that registered an rx_hook */ |
| 30 | struct sk_buff_head arp_tx; /* list of arp requests to reply to */ | 31 | struct sk_buff_head arp_tx; /* list of arp requests to reply to */ |
| @@ -50,12 +51,12 @@ static inline int netpoll_rx(struct sk_buff *skb) | |||
| 50 | unsigned long flags; | 51 | unsigned long flags; |
| 51 | int ret = 0; | 52 | int ret = 0; |
| 52 | 53 | ||
| 53 | if (!npinfo || !npinfo->rx_np) | 54 | if (!npinfo || (!npinfo->rx_np && !npinfo->rx_flags)) |
| 54 | return 0; | 55 | return 0; |
| 55 | 56 | ||
| 56 | spin_lock_irqsave(&npinfo->rx_lock, flags); | 57 | spin_lock_irqsave(&npinfo->rx_lock, flags); |
| 57 | /* check rx_np again with the lock held */ | 58 | /* check rx_flags again with the lock held */ |
| 58 | if (npinfo->rx_np && __netpoll_rx(skb)) | 59 | if (npinfo->rx_flags && __netpoll_rx(skb)) |
| 59 | ret = 1; | 60 | ret = 1; |
| 60 | spin_unlock_irqrestore(&npinfo->rx_lock, flags); | 61 | spin_unlock_irqrestore(&npinfo->rx_lock, flags); |
| 61 | 62 | ||
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index a69ba80f2dfe..f4a0e4c218df 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
| @@ -195,6 +195,7 @@ struct nfs_inode { | |||
| 195 | #define NFS_INO_ADVISE_RDPLUS (1) /* advise readdirplus */ | 195 | #define NFS_INO_ADVISE_RDPLUS (1) /* advise readdirplus */ |
| 196 | #define NFS_INO_STALE (2) /* possible stale inode */ | 196 | #define NFS_INO_STALE (2) /* possible stale inode */ |
| 197 | #define NFS_INO_ACL_LRU_SET (3) /* Inode is on the LRU list */ | 197 | #define NFS_INO_ACL_LRU_SET (3) /* Inode is on the LRU list */ |
| 198 | #define NFS_INO_MOUNTPOINT (4) /* inode is remote mountpoint */ | ||
| 198 | 199 | ||
| 199 | static inline struct nfs_inode *NFS_I(const struct inode *inode) | 200 | static inline struct nfs_inode *NFS_I(const struct inode *inode) |
| 200 | { | 201 | { |
diff --git a/include/linux/pci.h b/include/linux/pci.h index 87195b62de52..f3165e7ac431 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -389,6 +389,16 @@ struct pci_driver { | |||
| 389 | #define to_pci_driver(drv) container_of(drv, struct pci_driver, driver) | 389 | #define to_pci_driver(drv) container_of(drv, struct pci_driver, driver) |
| 390 | 390 | ||
| 391 | /** | 391 | /** |
| 392 | * DECLARE_PCI_DEVICE_TABLE - macro used to describe a pci device table | ||
| 393 | * @_table: device table name | ||
| 394 | * | ||
| 395 | * This macro is used to create a struct pci_device_id array (a device table) | ||
| 396 | * in a generic manner. | ||
| 397 | */ | ||
| 398 | #define DECLARE_PCI_DEVICE_TABLE(_table) \ | ||
| 399 | const struct pci_device_id _table[] __devinitconst | ||
| 400 | |||
| 401 | /** | ||
| 392 | * PCI_DEVICE - macro used to describe a specific pci device | 402 | * PCI_DEVICE - macro used to describe a specific pci device |
| 393 | * @vend: the 16 bit PCI Vendor ID | 403 | * @vend: the 16 bit PCI Vendor ID |
| 394 | * @dev: the 16 bit PCI Device ID | 404 | * @dev: the 16 bit PCI Device ID |
diff --git a/include/linux/raid/bitmap.h b/include/linux/raid/bitmap.h index e51b531cd0b2..47fbcba11850 100644 --- a/include/linux/raid/bitmap.h +++ b/include/linux/raid/bitmap.h | |||
| @@ -235,6 +235,8 @@ struct bitmap { | |||
| 235 | 235 | ||
| 236 | unsigned long flags; | 236 | unsigned long flags; |
| 237 | 237 | ||
| 238 | int allclean; | ||
| 239 | |||
| 238 | unsigned long max_write_behind; /* write-behind mode */ | 240 | unsigned long max_write_behind; /* write-behind mode */ |
| 239 | atomic_t behind_writes; | 241 | atomic_t behind_writes; |
| 240 | 242 | ||
diff --git a/include/linux/raid/md_k.h b/include/linux/raid/md_k.h index 85a068bab625..7bb6d1abf71e 100644 --- a/include/linux/raid/md_k.h +++ b/include/linux/raid/md_k.h | |||
| @@ -83,6 +83,7 @@ struct mdk_rdev_s | |||
| 83 | #define BarriersNotsupp 5 /* BIO_RW_BARRIER is not supported */ | 83 | #define BarriersNotsupp 5 /* BIO_RW_BARRIER is not supported */ |
| 84 | #define AllReserved 6 /* If whole device is reserved for | 84 | #define AllReserved 6 /* If whole device is reserved for |
| 85 | * one array */ | 85 | * one array */ |
| 86 | #define AutoDetected 7 /* added by auto-detect */ | ||
| 86 | 87 | ||
| 87 | int desc_nr; /* descriptor index in the superblock */ | 88 | int desc_nr; /* descriptor index in the superblock */ |
| 88 | int raid_disk; /* role of device in array */ | 89 | int raid_disk; /* role of device in array */ |
diff --git a/include/linux/rcuclassic.h b/include/linux/rcuclassic.h index 4d6624260b4c..b3dccd68629e 100644 --- a/include/linux/rcuclassic.h +++ b/include/linux/rcuclassic.h | |||
| @@ -160,5 +160,8 @@ extern void rcu_restart_cpu(int cpu); | |||
| 160 | extern long rcu_batches_completed(void); | 160 | extern long rcu_batches_completed(void); |
| 161 | extern long rcu_batches_completed_bh(void); | 161 | extern long rcu_batches_completed_bh(void); |
| 162 | 162 | ||
| 163 | #define rcu_enter_nohz() do { } while (0) | ||
| 164 | #define rcu_exit_nohz() do { } while (0) | ||
| 165 | |||
| 163 | #endif /* __KERNEL__ */ | 166 | #endif /* __KERNEL__ */ |
| 164 | #endif /* __LINUX_RCUCLASSIC_H */ | 167 | #endif /* __LINUX_RCUCLASSIC_H */ |
diff --git a/include/linux/rcupreempt.h b/include/linux/rcupreempt.h index 60c2a033b19e..01152ed532c8 100644 --- a/include/linux/rcupreempt.h +++ b/include/linux/rcupreempt.h | |||
| @@ -82,5 +82,27 @@ extern struct rcupreempt_trace *rcupreempt_trace_cpu(int cpu); | |||
| 82 | 82 | ||
| 83 | struct softirq_action; | 83 | struct softirq_action; |
| 84 | 84 | ||
| 85 | #ifdef CONFIG_NO_HZ | ||
| 86 | DECLARE_PER_CPU(long, dynticks_progress_counter); | ||
| 87 | |||
| 88 | static inline void rcu_enter_nohz(void) | ||
| 89 | { | ||
| 90 | __get_cpu_var(dynticks_progress_counter)++; | ||
| 91 | WARN_ON(__get_cpu_var(dynticks_progress_counter) & 0x1); | ||
| 92 | mb(); | ||
| 93 | } | ||
| 94 | |||
| 95 | static inline void rcu_exit_nohz(void) | ||
| 96 | { | ||
| 97 | mb(); | ||
| 98 | __get_cpu_var(dynticks_progress_counter)++; | ||
| 99 | WARN_ON(!(__get_cpu_var(dynticks_progress_counter) & 0x1)); | ||
| 100 | } | ||
| 101 | |||
| 102 | #else /* CONFIG_NO_HZ */ | ||
| 103 | #define rcu_enter_nohz() do { } while (0) | ||
| 104 | #define rcu_exit_nohz() do { } while (0) | ||
| 105 | #endif /* CONFIG_NO_HZ */ | ||
| 106 | |||
| 85 | #endif /* __KERNEL__ */ | 107 | #endif /* __KERNEL__ */ |
| 86 | #endif /* __LINUX_RCUPREEMPT_H */ | 108 | #endif /* __LINUX_RCUPREEMPT_H */ |
diff --git a/include/linux/sched.h b/include/linux/sched.h index e217d188a102..11d8e9a74eff 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -242,6 +242,7 @@ struct task_struct; | |||
| 242 | 242 | ||
| 243 | extern void sched_init(void); | 243 | extern void sched_init(void); |
| 244 | extern void sched_init_smp(void); | 244 | extern void sched_init_smp(void); |
| 245 | extern asmlinkage void schedule_tail(struct task_struct *prev); | ||
| 245 | extern void init_idle(struct task_struct *idle, int cpu); | 246 | extern void init_idle(struct task_struct *idle, int cpu); |
| 246 | extern void init_idle_bootup_task(struct task_struct *idle); | 247 | extern void init_idle_bootup_task(struct task_struct *idle); |
| 247 | 248 | ||
| @@ -898,6 +899,10 @@ struct sched_class { | |||
| 898 | int running); | 899 | int running); |
| 899 | void (*prio_changed) (struct rq *this_rq, struct task_struct *task, | 900 | void (*prio_changed) (struct rq *this_rq, struct task_struct *task, |
| 900 | int oldprio, int running); | 901 | int oldprio, int running); |
| 902 | |||
| 903 | #ifdef CONFIG_FAIR_GROUP_SCHED | ||
| 904 | void (*moved_group) (struct task_struct *p); | ||
| 905 | #endif | ||
| 901 | }; | 906 | }; |
| 902 | 907 | ||
| 903 | struct load_weight { | 908 | struct load_weight { |
| @@ -1189,7 +1194,7 @@ struct task_struct { | |||
| 1189 | int softirq_context; | 1194 | int softirq_context; |
| 1190 | #endif | 1195 | #endif |
| 1191 | #ifdef CONFIG_LOCKDEP | 1196 | #ifdef CONFIG_LOCKDEP |
| 1192 | # define MAX_LOCK_DEPTH 30UL | 1197 | # define MAX_LOCK_DEPTH 48UL |
| 1193 | u64 curr_chain_key; | 1198 | u64 curr_chain_key; |
| 1194 | int lockdep_depth; | 1199 | int lockdep_depth; |
| 1195 | struct held_lock held_locks[MAX_LOCK_DEPTH]; | 1200 | struct held_lock held_locks[MAX_LOCK_DEPTH]; |
| @@ -1541,10 +1546,6 @@ extern unsigned int sysctl_sched_child_runs_first; | |||
| 1541 | extern unsigned int sysctl_sched_features; | 1546 | extern unsigned int sysctl_sched_features; |
| 1542 | extern unsigned int sysctl_sched_migration_cost; | 1547 | extern unsigned int sysctl_sched_migration_cost; |
| 1543 | extern unsigned int sysctl_sched_nr_migrate; | 1548 | extern unsigned int sysctl_sched_nr_migrate; |
| 1544 | #if defined(CONFIG_FAIR_GROUP_SCHED) && defined(CONFIG_SMP) | ||
| 1545 | extern unsigned int sysctl_sched_min_bal_int_shares; | ||
| 1546 | extern unsigned int sysctl_sched_max_bal_int_shares; | ||
| 1547 | #endif | ||
| 1548 | 1549 | ||
| 1549 | int sched_nr_latency_handler(struct ctl_table *table, int write, | 1550 | int sched_nr_latency_handler(struct ctl_table *table, int write, |
| 1550 | struct file *file, void __user *buffer, size_t *length, | 1551 | struct file *file, void __user *buffer, size_t *length, |
diff --git a/include/linux/security.h b/include/linux/security.h index fe52cdeab0a6..b07357ca2137 100644 --- a/include/linux/security.h +++ b/include/linux/security.h | |||
| @@ -34,12 +34,6 @@ | |||
| 34 | #include <linux/xfrm.h> | 34 | #include <linux/xfrm.h> |
| 35 | #include <net/flow.h> | 35 | #include <net/flow.h> |
| 36 | 36 | ||
| 37 | /* only a char in selinux superblock security struct flags */ | ||
| 38 | #define FSCONTEXT_MNT 0x01 | ||
| 39 | #define CONTEXT_MNT 0x02 | ||
| 40 | #define ROOTCONTEXT_MNT 0x04 | ||
| 41 | #define DEFCONTEXT_MNT 0x08 | ||
| 42 | |||
| 43 | extern unsigned securebits; | 37 | extern unsigned securebits; |
| 44 | 38 | ||
| 45 | struct ctl_table; | 39 | struct ctl_table; |
| @@ -114,6 +108,32 @@ struct request_sock; | |||
| 114 | 108 | ||
| 115 | #ifdef CONFIG_SECURITY | 109 | #ifdef CONFIG_SECURITY |
| 116 | 110 | ||
| 111 | struct security_mnt_opts { | ||
| 112 | char **mnt_opts; | ||
| 113 | int *mnt_opts_flags; | ||
| 114 | int num_mnt_opts; | ||
| 115 | }; | ||
| 116 | |||
| 117 | static inline void security_init_mnt_opts(struct security_mnt_opts *opts) | ||
| 118 | { | ||
| 119 | opts->mnt_opts = NULL; | ||
| 120 | opts->mnt_opts_flags = NULL; | ||
| 121 | opts->num_mnt_opts = 0; | ||
| 122 | } | ||
| 123 | |||
| 124 | static inline void security_free_mnt_opts(struct security_mnt_opts *opts) | ||
| 125 | { | ||
| 126 | int i; | ||
| 127 | if (opts->mnt_opts) | ||
| 128 | for(i = 0; i < opts->num_mnt_opts; i++) | ||
| 129 | kfree(opts->mnt_opts[i]); | ||
| 130 | kfree(opts->mnt_opts); | ||
| 131 | opts->mnt_opts = NULL; | ||
| 132 | kfree(opts->mnt_opts_flags); | ||
| 133 | opts->mnt_opts_flags = NULL; | ||
| 134 | opts->num_mnt_opts = 0; | ||
| 135 | } | ||
| 136 | |||
| 117 | /** | 137 | /** |
| 118 | * struct security_operations - main security structure | 138 | * struct security_operations - main security structure |
| 119 | * | 139 | * |
| @@ -262,19 +282,19 @@ struct request_sock; | |||
| 262 | * @sb_get_mnt_opts: | 282 | * @sb_get_mnt_opts: |
| 263 | * Get the security relevant mount options used for a superblock | 283 | * Get the security relevant mount options used for a superblock |
| 264 | * @sb the superblock to get security mount options from | 284 | * @sb the superblock to get security mount options from |
| 265 | * @mount_options array for pointers to mount options | 285 | * @opts binary data structure containing all lsm mount data |
| 266 | * @mount_flags array of ints specifying what each mount options is | ||
| 267 | * @num_opts number of options in the arrays | ||
| 268 | * @sb_set_mnt_opts: | 286 | * @sb_set_mnt_opts: |
| 269 | * Set the security relevant mount options used for a superblock | 287 | * Set the security relevant mount options used for a superblock |
| 270 | * @sb the superblock to set security mount options for | 288 | * @sb the superblock to set security mount options for |
| 271 | * @mount_options array for pointers to mount options | 289 | * @opts binary data structure containing all lsm mount data |
| 272 | * @mount_flags array of ints specifying what each mount options is | ||
| 273 | * @num_opts number of options in the arrays | ||
| 274 | * @sb_clone_mnt_opts: | 290 | * @sb_clone_mnt_opts: |
| 275 | * Copy all security options from a given superblock to another | 291 | * Copy all security options from a given superblock to another |
| 276 | * @oldsb old superblock which contain information to clone | 292 | * @oldsb old superblock which contain information to clone |
| 277 | * @newsb new superblock which needs filled in | 293 | * @newsb new superblock which needs filled in |
| 294 | * @sb_parse_opts_str: | ||
| 295 | * Parse a string of security data filling in the opts structure | ||
| 296 | * @options string containing all mount options known by the LSM | ||
| 297 | * @opts binary data structure usable by the LSM | ||
| 278 | * | 298 | * |
| 279 | * Security hooks for inode operations. | 299 | * Security hooks for inode operations. |
| 280 | * | 300 | * |
| @@ -1238,8 +1258,7 @@ struct security_operations { | |||
| 1238 | 1258 | ||
| 1239 | int (*sb_alloc_security) (struct super_block * sb); | 1259 | int (*sb_alloc_security) (struct super_block * sb); |
| 1240 | void (*sb_free_security) (struct super_block * sb); | 1260 | void (*sb_free_security) (struct super_block * sb); |
| 1241 | int (*sb_copy_data)(struct file_system_type *type, | 1261 | int (*sb_copy_data)(char *orig, char *copy); |
| 1242 | void *orig, void *copy); | ||
| 1243 | int (*sb_kern_mount) (struct super_block *sb, void *data); | 1262 | int (*sb_kern_mount) (struct super_block *sb, void *data); |
| 1244 | int (*sb_statfs) (struct dentry *dentry); | 1263 | int (*sb_statfs) (struct dentry *dentry); |
| 1245 | int (*sb_mount) (char *dev_name, struct nameidata * nd, | 1264 | int (*sb_mount) (char *dev_name, struct nameidata * nd, |
| @@ -1257,12 +1276,12 @@ struct security_operations { | |||
| 1257 | void (*sb_post_pivotroot) (struct nameidata * old_nd, | 1276 | void (*sb_post_pivotroot) (struct nameidata * old_nd, |
| 1258 | struct nameidata * new_nd); | 1277 | struct nameidata * new_nd); |
| 1259 | int (*sb_get_mnt_opts) (const struct super_block *sb, | 1278 | int (*sb_get_mnt_opts) (const struct super_block *sb, |
| 1260 | char ***mount_options, int **flags, | 1279 | struct security_mnt_opts *opts); |
| 1261 | int *num_opts); | 1280 | int (*sb_set_mnt_opts) (struct super_block *sb, |
| 1262 | int (*sb_set_mnt_opts) (struct super_block *sb, char **mount_options, | 1281 | struct security_mnt_opts *opts); |
| 1263 | int *flags, int num_opts); | ||
| 1264 | void (*sb_clone_mnt_opts) (const struct super_block *oldsb, | 1282 | void (*sb_clone_mnt_opts) (const struct super_block *oldsb, |
| 1265 | struct super_block *newsb); | 1283 | struct super_block *newsb); |
| 1284 | int (*sb_parse_opts_str) (char *options, struct security_mnt_opts *opts); | ||
| 1266 | 1285 | ||
| 1267 | int (*inode_alloc_security) (struct inode *inode); | 1286 | int (*inode_alloc_security) (struct inode *inode); |
| 1268 | void (*inode_free_security) (struct inode *inode); | 1287 | void (*inode_free_security) (struct inode *inode); |
| @@ -1507,7 +1526,7 @@ int security_bprm_check(struct linux_binprm *bprm); | |||
| 1507 | int security_bprm_secureexec(struct linux_binprm *bprm); | 1526 | int security_bprm_secureexec(struct linux_binprm *bprm); |
| 1508 | int security_sb_alloc(struct super_block *sb); | 1527 | int security_sb_alloc(struct super_block *sb); |
| 1509 | void security_sb_free(struct super_block *sb); | 1528 | void security_sb_free(struct super_block *sb); |
| 1510 | int security_sb_copy_data(struct file_system_type *type, void *orig, void *copy); | 1529 | int security_sb_copy_data(char *orig, char *copy); |
| 1511 | int security_sb_kern_mount(struct super_block *sb, void *data); | 1530 | int security_sb_kern_mount(struct super_block *sb, void *data); |
| 1512 | int security_sb_statfs(struct dentry *dentry); | 1531 | int security_sb_statfs(struct dentry *dentry); |
| 1513 | int security_sb_mount(char *dev_name, struct nameidata *nd, | 1532 | int security_sb_mount(char *dev_name, struct nameidata *nd, |
| @@ -1520,12 +1539,12 @@ void security_sb_post_remount(struct vfsmount *mnt, unsigned long flags, void *d | |||
| 1520 | void security_sb_post_addmount(struct vfsmount *mnt, struct nameidata *mountpoint_nd); | 1539 | void security_sb_post_addmount(struct vfsmount *mnt, struct nameidata *mountpoint_nd); |
| 1521 | int security_sb_pivotroot(struct nameidata *old_nd, struct nameidata *new_nd); | 1540 | int security_sb_pivotroot(struct nameidata *old_nd, struct nameidata *new_nd); |
| 1522 | void security_sb_post_pivotroot(struct nameidata *old_nd, struct nameidata *new_nd); | 1541 | void security_sb_post_pivotroot(struct nameidata *old_nd, struct nameidata *new_nd); |
| 1523 | int security_sb_get_mnt_opts(const struct super_block *sb, char ***mount_options, | 1542 | int security_sb_get_mnt_opts(const struct super_block *sb, |
| 1524 | int **flags, int *num_opts); | 1543 | struct security_mnt_opts *opts); |
| 1525 | int security_sb_set_mnt_opts(struct super_block *sb, char **mount_options, | 1544 | int security_sb_set_mnt_opts(struct super_block *sb, struct security_mnt_opts *opts); |
| 1526 | int *flags, int num_opts); | ||
| 1527 | void security_sb_clone_mnt_opts(const struct super_block *oldsb, | 1545 | void security_sb_clone_mnt_opts(const struct super_block *oldsb, |
| 1528 | struct super_block *newsb); | 1546 | struct super_block *newsb); |
| 1547 | int security_sb_parse_opts_str(char *options, struct security_mnt_opts *opts); | ||
| 1529 | 1548 | ||
| 1530 | int security_inode_alloc(struct inode *inode); | 1549 | int security_inode_alloc(struct inode *inode); |
| 1531 | void security_inode_free(struct inode *inode); | 1550 | void security_inode_free(struct inode *inode); |
| @@ -1635,6 +1654,16 @@ int security_secctx_to_secid(char *secdata, u32 seclen, u32 *secid); | |||
| 1635 | void security_release_secctx(char *secdata, u32 seclen); | 1654 | void security_release_secctx(char *secdata, u32 seclen); |
| 1636 | 1655 | ||
| 1637 | #else /* CONFIG_SECURITY */ | 1656 | #else /* CONFIG_SECURITY */ |
| 1657 | struct security_mnt_opts { | ||
| 1658 | }; | ||
| 1659 | |||
| 1660 | static inline void security_init_mnt_opts(struct security_mnt_opts *opts) | ||
| 1661 | { | ||
| 1662 | } | ||
| 1663 | |||
| 1664 | static inline void security_free_mnt_opts(struct security_mnt_opts *opts) | ||
| 1665 | { | ||
| 1666 | } | ||
| 1638 | 1667 | ||
| 1639 | /* | 1668 | /* |
| 1640 | * This is the default capabilities functionality. Most of these functions | 1669 | * This is the default capabilities functionality. Most of these functions |
| @@ -1762,8 +1791,7 @@ static inline int security_sb_alloc (struct super_block *sb) | |||
| 1762 | static inline void security_sb_free (struct super_block *sb) | 1791 | static inline void security_sb_free (struct super_block *sb) |
| 1763 | { } | 1792 | { } |
| 1764 | 1793 | ||
| 1765 | static inline int security_sb_copy_data (struct file_system_type *type, | 1794 | static inline int security_sb_copy_data (char *orig, char *copy) |
| 1766 | void *orig, void *copy) | ||
| 1767 | { | 1795 | { |
| 1768 | return 0; | 1796 | return 0; |
| 1769 | } | 1797 | } |
| @@ -1819,6 +1847,27 @@ static inline int security_sb_pivotroot (struct nameidata *old_nd, | |||
| 1819 | static inline void security_sb_post_pivotroot (struct nameidata *old_nd, | 1847 | static inline void security_sb_post_pivotroot (struct nameidata *old_nd, |
| 1820 | struct nameidata *new_nd) | 1848 | struct nameidata *new_nd) |
| 1821 | { } | 1849 | { } |
| 1850 | static inline int security_sb_get_mnt_opts(const struct super_block *sb, | ||
| 1851 | struct security_mnt_opts *opts) | ||
| 1852 | { | ||
| 1853 | security_init_mnt_opts(opts); | ||
| 1854 | return 0; | ||
| 1855 | } | ||
| 1856 | |||
| 1857 | static inline int security_sb_set_mnt_opts(struct super_block *sb, | ||
| 1858 | struct security_mnt_opts *opts) | ||
| 1859 | { | ||
| 1860 | return 0; | ||
| 1861 | } | ||
| 1862 | |||
| 1863 | static inline void security_sb_clone_mnt_opts(const struct super_block *oldsb, | ||
| 1864 | struct super_block *newsb) | ||
| 1865 | { } | ||
| 1866 | |||
| 1867 | static inline int security_sb_parse_opts_str(char *options, struct security_mnt_opts *opts) | ||
| 1868 | { | ||
| 1869 | return 0; | ||
| 1870 | } | ||
| 1822 | 1871 | ||
| 1823 | static inline int security_inode_alloc (struct inode *inode) | 1872 | static inline int security_inode_alloc (struct inode *inode) |
| 1824 | { | 1873 | { |
diff --git a/include/linux/serial_sci.h b/include/linux/serial_sci.h new file mode 100644 index 000000000000..893cc53486bc --- /dev/null +++ b/include/linux/serial_sci.h | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | #ifndef __LINUX_SERIAL_SCI_H | ||
| 2 | #define __LINUX_SERIAL_SCI_H | ||
| 3 | |||
| 4 | #include <linux/serial_core.h> | ||
| 5 | |||
| 6 | /* | ||
| 7 | * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts) | ||
| 8 | */ | ||
| 9 | |||
| 10 | /* Offsets into the sci_port->irqs array */ | ||
| 11 | enum { | ||
| 12 | SCIx_ERI_IRQ, | ||
| 13 | SCIx_RXI_IRQ, | ||
| 14 | SCIx_TXI_IRQ, | ||
| 15 | SCIx_BRI_IRQ, | ||
| 16 | SCIx_NR_IRQS, | ||
| 17 | }; | ||
| 18 | |||
| 19 | /* | ||
| 20 | * Platform device specific platform_data struct | ||
| 21 | */ | ||
| 22 | struct plat_sci_port { | ||
| 23 | void __iomem *membase; /* io cookie */ | ||
| 24 | unsigned long mapbase; /* resource base */ | ||
| 25 | unsigned int irqs[SCIx_NR_IRQS]; /* ERI, RXI, TXI, BRI */ | ||
| 26 | unsigned int type; /* SCI / SCIF / IRDA */ | ||
| 27 | upf_t flags; /* UPF_* flags */ | ||
| 28 | }; | ||
| 29 | |||
| 30 | int early_sci_setup(struct uart_port *port); | ||
| 31 | |||
| 32 | #endif /* __LINUX_SERIAL_SCI_H */ | ||
diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h index fcc48096ee64..39c3a5eb8ebe 100644 --- a/include/linux/slab_def.h +++ b/include/linux/slab_def.h | |||
| @@ -41,7 +41,7 @@ static inline void *kmalloc(size_t size, gfp_t flags) | |||
| 41 | goto found; \ | 41 | goto found; \ |
| 42 | else \ | 42 | else \ |
| 43 | i++; | 43 | i++; |
| 44 | #include "kmalloc_sizes.h" | 44 | #include <linux/kmalloc_sizes.h> |
| 45 | #undef CACHE | 45 | #undef CACHE |
| 46 | { | 46 | { |
| 47 | extern void __you_cannot_kmalloc_that_much(void); | 47 | extern void __you_cannot_kmalloc_that_much(void); |
| @@ -75,7 +75,7 @@ static inline void *kmalloc_node(size_t size, gfp_t flags, int node) | |||
| 75 | goto found; \ | 75 | goto found; \ |
| 76 | else \ | 76 | else \ |
| 77 | i++; | 77 | i++; |
| 78 | #include "kmalloc_sizes.h" | 78 | #include <linux/kmalloc_sizes.h> |
| 79 | #undef CACHE | 79 | #undef CACHE |
| 80 | { | 80 | { |
| 81 | extern void __you_cannot_kmalloc_that_much(void); | 81 | extern void __you_cannot_kmalloc_that_much(void); |
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h index 57deecc79d52..b00c1c73eb0a 100644 --- a/include/linux/slub_def.h +++ b/include/linux/slub_def.h | |||
| @@ -61,7 +61,7 @@ struct kmem_cache { | |||
| 61 | int size; /* The size of an object including meta data */ | 61 | int size; /* The size of an object including meta data */ |
| 62 | int objsize; /* The size of an object without meta data */ | 62 | int objsize; /* The size of an object without meta data */ |
| 63 | int offset; /* Free pointer offset. */ | 63 | int offset; /* Free pointer offset. */ |
| 64 | int order; | 64 | int order; /* Current preferred allocation order */ |
| 65 | 65 | ||
| 66 | /* | 66 | /* |
| 67 | * Avoid an extra cache line for UP, SMP and for the node local to | 67 | * Avoid an extra cache line for UP, SMP and for the node local to |
| @@ -138,11 +138,11 @@ static __always_inline int kmalloc_index(size_t size) | |||
| 138 | if (size <= 512) return 9; | 138 | if (size <= 512) return 9; |
| 139 | if (size <= 1024) return 10; | 139 | if (size <= 1024) return 10; |
| 140 | if (size <= 2 * 1024) return 11; | 140 | if (size <= 2 * 1024) return 11; |
| 141 | if (size <= 4 * 1024) return 12; | ||
| 141 | /* | 142 | /* |
| 142 | * The following is only needed to support architectures with a larger page | 143 | * The following is only needed to support architectures with a larger page |
| 143 | * size than 4k. | 144 | * size than 4k. |
| 144 | */ | 145 | */ |
| 145 | if (size <= 4 * 1024) return 12; | ||
| 146 | if (size <= 8 * 1024) return 13; | 146 | if (size <= 8 * 1024) return 13; |
| 147 | if (size <= 16 * 1024) return 14; | 147 | if (size <= 16 * 1024) return 14; |
| 148 | if (size <= 32 * 1024) return 15; | 148 | if (size <= 32 * 1024) return 15; |
diff --git a/include/linux/sm501-regs.h b/include/linux/sm501-regs.h index 64236b73c724..d53642d2d899 100644 --- a/include/linux/sm501-regs.h +++ b/include/linux/sm501-regs.h | |||
| @@ -129,11 +129,14 @@ | |||
| 129 | 129 | ||
| 130 | #define SM501_DEVICEID_SM501 (0x05010000) | 130 | #define SM501_DEVICEID_SM501 (0x05010000) |
| 131 | #define SM501_DEVICEID_IDMASK (0xffff0000) | 131 | #define SM501_DEVICEID_IDMASK (0xffff0000) |
| 132 | #define SM501_DEVICEID_REVMASK (0x000000ff) | ||
| 132 | 133 | ||
| 133 | #define SM501_PLLCLOCK_COUNT (0x000064) | 134 | #define SM501_PLLCLOCK_COUNT (0x000064) |
| 134 | #define SM501_MISC_TIMING (0x000068) | 135 | #define SM501_MISC_TIMING (0x000068) |
| 135 | #define SM501_CURRENT_SDRAM_CLOCK (0x00006C) | 136 | #define SM501_CURRENT_SDRAM_CLOCK (0x00006C) |
| 136 | 137 | ||
| 138 | #define SM501_PROGRAMMABLE_PLL_CONTROL (0x000074) | ||
| 139 | |||
| 137 | /* GPIO base */ | 140 | /* GPIO base */ |
| 138 | #define SM501_GPIO (0x010000) | 141 | #define SM501_GPIO (0x010000) |
| 139 | #define SM501_GPIO_DATA_LOW (0x00) | 142 | #define SM501_GPIO_DATA_LOW (0x00) |
diff --git a/include/linux/sm501.h b/include/linux/sm501.h index 932a9efee8a5..bca134544700 100644 --- a/include/linux/sm501.h +++ b/include/linux/sm501.h | |||
| @@ -24,7 +24,8 @@ extern int sm501_unit_power(struct device *dev, | |||
| 24 | extern unsigned long sm501_set_clock(struct device *dev, | 24 | extern unsigned long sm501_set_clock(struct device *dev, |
| 25 | int clksrc, unsigned long freq); | 25 | int clksrc, unsigned long freq); |
| 26 | 26 | ||
| 27 | extern unsigned long sm501_find_clock(int clksrc, unsigned long req_freq); | 27 | extern unsigned long sm501_find_clock(struct device *dev, |
| 28 | int clksrc, unsigned long req_freq); | ||
| 28 | 29 | ||
| 29 | /* sm501_misc_control | 30 | /* sm501_misc_control |
| 30 | * | 31 | * |
diff --git a/include/linux/usb.h b/include/linux/usb.h index 2372e2e6b527..583e0481dfa0 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
| @@ -94,10 +94,9 @@ enum usb_interface_condition { | |||
| 94 | * @altsetting: array of interface structures, one for each alternate | 94 | * @altsetting: array of interface structures, one for each alternate |
| 95 | * setting that may be selected. Each one includes a set of | 95 | * setting that may be selected. Each one includes a set of |
| 96 | * endpoint configurations. They will be in no particular order. | 96 | * endpoint configurations. They will be in no particular order. |
| 97 | * @num_altsetting: number of altsettings defined. | ||
| 98 | * @cur_altsetting: the current altsetting. | 97 | * @cur_altsetting: the current altsetting. |
| 98 | * @num_altsetting: number of altsettings defined. | ||
| 99 | * @intf_assoc: interface association descriptor | 99 | * @intf_assoc: interface association descriptor |
| 100 | * @driver: the USB driver that is bound to this interface. | ||
| 101 | * @minor: the minor number assigned to this interface, if this | 100 | * @minor: the minor number assigned to this interface, if this |
| 102 | * interface is bound to a driver that uses the USB major number. | 101 | * interface is bound to a driver that uses the USB major number. |
| 103 | * If this interface does not use the USB major, this field should | 102 | * If this interface does not use the USB major, this field should |
| @@ -781,8 +780,7 @@ static inline int usb_endpoint_is_isoc_out( | |||
| 781 | .idVendor = (vend), \ | 780 | .idVendor = (vend), \ |
| 782 | .idProduct = (prod) | 781 | .idProduct = (prod) |
| 783 | /** | 782 | /** |
| 784 | * USB_DEVICE_VER - macro used to describe a specific usb device with a | 783 | * USB_DEVICE_VER - describe a specific usb device with a version range |
| 785 | * version range | ||
| 786 | * @vend: the 16 bit USB Vendor ID | 784 | * @vend: the 16 bit USB Vendor ID |
| 787 | * @prod: the 16 bit USB Product ID | 785 | * @prod: the 16 bit USB Product ID |
| 788 | * @lo: the bcdDevice_lo value | 786 | * @lo: the bcdDevice_lo value |
| @@ -799,8 +797,7 @@ static inline int usb_endpoint_is_isoc_out( | |||
| 799 | .bcdDevice_hi = (hi) | 797 | .bcdDevice_hi = (hi) |
| 800 | 798 | ||
| 801 | /** | 799 | /** |
| 802 | * USB_DEVICE_INTERFACE_PROTOCOL - macro used to describe a usb | 800 | * USB_DEVICE_INTERFACE_PROTOCOL - describe a usb device with a specific interface protocol |
| 803 | * device with a specific interface protocol | ||
| 804 | * @vend: the 16 bit USB Vendor ID | 801 | * @vend: the 16 bit USB Vendor ID |
| 805 | * @prod: the 16 bit USB Product ID | 802 | * @prod: the 16 bit USB Product ID |
| 806 | * @pr: bInterfaceProtocol value | 803 | * @pr: bInterfaceProtocol value |
| @@ -846,8 +843,7 @@ static inline int usb_endpoint_is_isoc_out( | |||
| 846 | .bInterfaceProtocol = (pr) | 843 | .bInterfaceProtocol = (pr) |
| 847 | 844 | ||
| 848 | /** | 845 | /** |
| 849 | * USB_DEVICE_AND_INTERFACE_INFO - macro used to describe a specific usb device | 846 | * USB_DEVICE_AND_INTERFACE_INFO - describe a specific usb device with a class of usb interfaces |
| 850 | * with a class of usb interfaces | ||
| 851 | * @vend: the 16 bit USB Vendor ID | 847 | * @vend: the 16 bit USB Vendor ID |
| 852 | * @prod: the 16 bit USB Product ID | 848 | * @prod: the 16 bit USB Product ID |
| 853 | * @cl: bInterfaceClass value | 849 | * @cl: bInterfaceClass value |
diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index 75370ec0923e..9f1b4b46151e 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h | |||
| @@ -246,8 +246,7 @@ static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item) | |||
| 246 | static inline void __dec_zone_page_state(struct page *page, | 246 | static inline void __dec_zone_page_state(struct page *page, |
| 247 | enum zone_stat_item item) | 247 | enum zone_stat_item item) |
| 248 | { | 248 | { |
| 249 | atomic_long_dec(&page_zone(page)->vm_stat[item]); | 249 | __dec_zone_state(page_zone(page), item); |
| 250 | atomic_long_dec(&vm_stat[item]); | ||
| 251 | } | 250 | } |
| 252 | 251 | ||
| 253 | /* | 252 | /* |
