diff options
| author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2009-09-12 07:02:26 -0400 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-12 07:02:26 -0400 |
| commit | ddd559b13f6d2fe3ad68c4b3f5235fd3c2eae4e3 (patch) | |
| tree | d827bca3fc825a0ac33efbcd493713be40fcc812 /include/linux | |
| parent | cf7a2b4fb6a9b86779930a0a123b0df41aa9208f (diff) | |
| parent | f17a1f06d2fa93f4825be572622eb02c4894db4e (diff) | |
Merge branch 'devel-stable' into devel
Conflicts:
MAINTAINERS
arch/arm/mm/fault.c
Diffstat (limited to 'include/linux')
44 files changed, 309 insertions, 306 deletions
diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h index 9b93cafa82a0..ab94335b4bb9 100644 --- a/include/linux/amba/bus.h +++ b/include/linux/amba/bus.h | |||
| @@ -36,6 +36,11 @@ struct amba_driver { | |||
| 36 | struct amba_id *id_table; | 36 | struct amba_id *id_table; |
| 37 | }; | 37 | }; |
| 38 | 38 | ||
| 39 | enum amba_vendor { | ||
| 40 | AMBA_VENDOR_ARM = 0x41, | ||
| 41 | AMBA_VENDOR_ST = 0x80, | ||
| 42 | }; | ||
| 43 | |||
| 39 | #define amba_get_drvdata(d) dev_get_drvdata(&d->dev) | 44 | #define amba_get_drvdata(d) dev_get_drvdata(&d->dev) |
| 40 | #define amba_set_drvdata(d,p) dev_set_drvdata(&d->dev, p) | 45 | #define amba_set_drvdata(d,p) dev_set_drvdata(&d->dev, p) |
| 41 | 46 | ||
diff --git a/include/linux/amba/pl093.h b/include/linux/amba/pl093.h new file mode 100644 index 000000000000..2983e3671adb --- /dev/null +++ b/include/linux/amba/pl093.h | |||
| @@ -0,0 +1,80 @@ | |||
| 1 | /* linux/amba/pl093.h | ||
| 2 | * | ||
| 3 | * Copyright (c) 2008 Simtec Electronics | ||
| 4 | * http://armlinux.simtec.co.uk/ | ||
| 5 | * Ben Dooks <ben@simtec.co.uk> | ||
| 6 | * | ||
| 7 | * AMBA PL093 SSMC (synchronous static memory controller) | ||
| 8 | * See DDI0236.pdf (r0p4) for more details | ||
| 9 | * | ||
| 10 | * This program is free software; you can redistribute it and/or modify | ||
| 11 | * it under the terms of the GNU General Public License version 2 as | ||
| 12 | * published by the Free Software Foundation. | ||
| 13 | */ | ||
| 14 | |||
| 15 | #define SMB_BANK(x) ((x) * 0x20) /* each bank control set is 0x20 apart */ | ||
| 16 | |||
| 17 | /* Offsets for SMBxxxxRy registers */ | ||
| 18 | |||
| 19 | #define SMBIDCYR (0x00) | ||
| 20 | #define SMBWSTRDR (0x04) | ||
| 21 | #define SMBWSTWRR (0x08) | ||
| 22 | #define SMBWSTOENR (0x0C) | ||
| 23 | #define SMBWSTWENR (0x10) | ||
| 24 | #define SMBCR (0x14) | ||
| 25 | #define SMBSR (0x18) | ||
| 26 | #define SMBWSTBRDR (0x1C) | ||
| 27 | |||
| 28 | /* Masks for SMB registers */ | ||
| 29 | #define IDCY_MASK (0xf) | ||
| 30 | #define WSTRD_MASK (0xf) | ||
| 31 | #define WSTWR_MASK (0xf) | ||
| 32 | #define WSTOEN_MASK (0xf) | ||
| 33 | #define WSTWEN_MASK (0xf) | ||
| 34 | |||
| 35 | /* Notes from datasheet: | ||
| 36 | * WSTOEN <= WSTRD | ||
| 37 | * WSTWEN <= WSTWR | ||
| 38 | * | ||
| 39 | * WSTOEN is not used with nWAIT | ||
| 40 | */ | ||
| 41 | |||
| 42 | /* SMBCR bit definitions */ | ||
| 43 | #define SMBCR_BIWRITEEN (1 << 21) | ||
| 44 | #define SMBCR_ADDRVALIDWRITEEN (1 << 20) | ||
| 45 | #define SMBCR_SYNCWRITE (1 << 17) | ||
| 46 | #define SMBCR_BMWRITE (1 << 16) | ||
| 47 | #define SMBCR_WRAPREAD (1 << 14) | ||
| 48 | #define SMBCR_BIREADEN (1 << 13) | ||
| 49 | #define SMBCR_ADDRVALIDREADEN (1 << 12) | ||
| 50 | #define SMBCR_SYNCREAD (1 << 9) | ||
| 51 | #define SMBCR_BMREAD (1 << 8) | ||
| 52 | #define SMBCR_SMBLSPOL (1 << 6) | ||
| 53 | #define SMBCR_WP (1 << 3) | ||
| 54 | #define SMBCR_WAITEN (1 << 2) | ||
| 55 | #define SMBCR_WAITPOL (1 << 1) | ||
| 56 | #define SMBCR_RBLE (1 << 0) | ||
| 57 | |||
| 58 | #define SMBCR_BURSTLENWRITE_MASK (3 << 18) | ||
| 59 | #define SMBCR_BURSTLENWRITE_4 (0 << 18) | ||
| 60 | #define SMBCR_BURSTLENWRITE_8 (1 << 18) | ||
| 61 | #define SMBCR_BURSTLENWRITE_RESERVED (2 << 18) | ||
| 62 | #define SMBCR_BURSTLENWRITE_CONTINUOUS (3 << 18) | ||
| 63 | |||
| 64 | #define SMBCR_BURSTLENREAD_MASK (3 << 10) | ||
| 65 | #define SMBCR_BURSTLENREAD_4 (0 << 10) | ||
| 66 | #define SMBCR_BURSTLENREAD_8 (1 << 10) | ||
| 67 | #define SMBCR_BURSTLENREAD_16 (2 << 10) | ||
| 68 | #define SMBCR_BURSTLENREAD_CONTINUOUS (3 << 10) | ||
| 69 | |||
| 70 | #define SMBCR_MW_MASK (3 << 4) | ||
| 71 | #define SMBCR_MW_8BIT (0 << 4) | ||
| 72 | #define SMBCR_MW_16BIT (1 << 4) | ||
| 73 | #define SMBCR_MW_M32BIT (2 << 4) | ||
| 74 | |||
| 75 | /* SSMC status registers */ | ||
| 76 | #define SSMCCSR (0x200) | ||
| 77 | #define SSMCCR (0x204) | ||
| 78 | #define SSMCITCR (0x208) | ||
| 79 | #define SSMCITIP (0x20C) | ||
| 80 | #define SSMCITIOP (0x210) | ||
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index 3a52a63c1351..1d52425a6118 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h | |||
| @@ -229,6 +229,11 @@ static inline int bdi_rw_congested(struct backing_dev_info *bdi) | |||
| 229 | (1 << BDI_async_congested)); | 229 | (1 << BDI_async_congested)); |
| 230 | } | 230 | } |
| 231 | 231 | ||
| 232 | enum { | ||
| 233 | BLK_RW_ASYNC = 0, | ||
| 234 | BLK_RW_SYNC = 1, | ||
| 235 | }; | ||
| 236 | |||
| 232 | void clear_bdi_congested(struct backing_dev_info *bdi, int sync); | 237 | void clear_bdi_congested(struct backing_dev_info *bdi, int sync); |
| 233 | void set_bdi_congested(struct backing_dev_info *bdi, int sync); | 238 | void set_bdi_congested(struct backing_dev_info *bdi, int sync); |
| 234 | long congestion_wait(int sync, long timeout); | 239 | long congestion_wait(int sync, long timeout); |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 0146e0fecf1a..e7cb5dbf6c26 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -70,11 +70,6 @@ enum rq_cmd_type_bits { | |||
| 70 | REQ_TYPE_ATA_PC, | 70 | REQ_TYPE_ATA_PC, |
| 71 | }; | 71 | }; |
| 72 | 72 | ||
| 73 | enum { | ||
| 74 | BLK_RW_ASYNC = 0, | ||
| 75 | BLK_RW_SYNC = 1, | ||
| 76 | }; | ||
| 77 | |||
| 78 | /* | 73 | /* |
| 79 | * For request of type REQ_TYPE_LINUX_BLOCK, rq->cmd[0] is the opcode being | 74 | * For request of type REQ_TYPE_LINUX_BLOCK, rq->cmd[0] is the opcode being |
| 80 | * sent down (similar to how REQ_TYPE_BLOCK_PC means that ->cmd[] holds a | 75 | * sent down (similar to how REQ_TYPE_BLOCK_PC means that ->cmd[] holds a |
diff --git a/include/linux/cb710.h b/include/linux/cb710.h index 63bc9a4d2926..8cc10411bab2 100644 --- a/include/linux/cb710.h +++ b/include/linux/cb710.h | |||
| @@ -140,29 +140,6 @@ void cb710_dump_regs(struct cb710_chip *chip, unsigned dump); | |||
| 140 | #include <linux/highmem.h> | 140 | #include <linux/highmem.h> |
| 141 | #include <linux/scatterlist.h> | 141 | #include <linux/scatterlist.h> |
| 142 | 142 | ||
| 143 | /** | ||
| 144 | * cb710_sg_miter_stop_writing - stop mapping iteration after writing | ||
| 145 | * @miter: sg mapping iter to be stopped | ||
| 146 | * | ||
| 147 | * Description: | ||
| 148 | * Stops mapping iterator @miter. @miter should have been started | ||
| 149 | * started using sg_miter_start(). A stopped iteration can be | ||
| 150 | * resumed by calling sg_miter_next() on it. This is useful when | ||
| 151 | * resources (kmap) need to be released during iteration. | ||
| 152 | * | ||
| 153 | * This is a convenience wrapper that will be optimized out for arches | ||
| 154 | * that don't need flush_kernel_dcache_page(). | ||
| 155 | * | ||
| 156 | * Context: | ||
| 157 | * IRQ disabled if the SG_MITER_ATOMIC is set. Don't care otherwise. | ||
| 158 | */ | ||
| 159 | static inline void cb710_sg_miter_stop_writing(struct sg_mapping_iter *miter) | ||
| 160 | { | ||
| 161 | if (miter->page) | ||
| 162 | flush_kernel_dcache_page(miter->page); | ||
| 163 | sg_miter_stop(miter); | ||
| 164 | } | ||
| 165 | |||
| 166 | /* | 143 | /* |
| 167 | * 32-bit PIO mapping sg iterator | 144 | * 32-bit PIO mapping sg iterator |
| 168 | * | 145 | * |
| @@ -171,12 +148,12 @@ static inline void cb710_sg_miter_stop_writing(struct sg_mapping_iter *miter) | |||
| 171 | * without DMA support). | 148 | * without DMA support). |
| 172 | * | 149 | * |
| 173 | * Best-case reading (transfer from device): | 150 | * Best-case reading (transfer from device): |
| 174 | * sg_miter_start(); | 151 | * sg_miter_start(, SG_MITER_TO_SG); |
| 175 | * cb710_sg_dwiter_write_from_io(); | 152 | * cb710_sg_dwiter_write_from_io(); |
| 176 | * cb710_sg_miter_stop_writing(); | 153 | * sg_miter_stop(); |
| 177 | * | 154 | * |
| 178 | * Best-case writing (transfer to device): | 155 | * Best-case writing (transfer to device): |
| 179 | * sg_miter_start(); | 156 | * sg_miter_start(, SG_MITER_FROM_SG); |
| 180 | * cb710_sg_dwiter_read_to_io(); | 157 | * cb710_sg_dwiter_read_to_io(); |
| 181 | * sg_miter_stop(); | 158 | * sg_miter_stop(); |
| 182 | */ | 159 | */ |
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index 665fa70e4094..90bba9e62286 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h | |||
| @@ -179,14 +179,11 @@ struct cgroup { | |||
| 179 | */ | 179 | */ |
| 180 | struct list_head release_list; | 180 | struct list_head release_list; |
| 181 | 181 | ||
| 182 | /* pids_mutex protects the fields below */ | 182 | /* pids_mutex protects pids_list and cached pid arrays. */ |
| 183 | struct rw_semaphore pids_mutex; | 183 | struct rw_semaphore pids_mutex; |
| 184 | /* Array of process ids in the cgroup */ | 184 | |
| 185 | pid_t *tasks_pids; | 185 | /* Linked list of struct cgroup_pids */ |
| 186 | /* How many files are using the current tasks_pids array */ | 186 | struct list_head pids_list; |
| 187 | int pids_use_count; | ||
| 188 | /* Length of the current tasks_pids array */ | ||
| 189 | int pids_length; | ||
| 190 | 187 | ||
| 191 | /* For RCU-protected deletion */ | 188 | /* For RCU-protected deletion */ |
| 192 | struct rcu_head rcu_head; | 189 | struct rcu_head rcu_head; |
| @@ -366,6 +363,23 @@ int cgroup_task_count(const struct cgroup *cgrp); | |||
| 366 | int cgroup_is_descendant(const struct cgroup *cgrp, struct task_struct *task); | 363 | int cgroup_is_descendant(const struct cgroup *cgrp, struct task_struct *task); |
| 367 | 364 | ||
| 368 | /* | 365 | /* |
| 366 | * When the subsys has to access css and may add permanent refcnt to css, | ||
| 367 | * it should take care of racy conditions with rmdir(). Following set of | ||
| 368 | * functions, is for stop/restart rmdir if necessary. | ||
| 369 | * Because these will call css_get/put, "css" should be alive css. | ||
| 370 | * | ||
| 371 | * cgroup_exclude_rmdir(); | ||
| 372 | * ...do some jobs which may access arbitrary empty cgroup | ||
| 373 | * cgroup_release_and_wakeup_rmdir(); | ||
| 374 | * | ||
| 375 | * When someone removes a cgroup while cgroup_exclude_rmdir() holds it, | ||
| 376 | * it sleeps and cgroup_release_and_wakeup_rmdir() will wake him up. | ||
| 377 | */ | ||
| 378 | |||
| 379 | void cgroup_exclude_rmdir(struct cgroup_subsys_state *css); | ||
| 380 | void cgroup_release_and_wakeup_rmdir(struct cgroup_subsys_state *css); | ||
| 381 | |||
| 382 | /* | ||
| 369 | * Control Group subsystem type. | 383 | * Control Group subsystem type. |
| 370 | * See Documentation/cgroups/cgroups.txt for details | 384 | * See Documentation/cgroups/cgroups.txt for details |
| 371 | */ | 385 | */ |
diff --git a/include/linux/clockchips.h b/include/linux/clockchips.h index 20a100fe2b4f..3a1dbba4d3ae 100644 --- a/include/linux/clockchips.h +++ b/include/linux/clockchips.h | |||
| @@ -143,12 +143,3 @@ extern void clockevents_notify(unsigned long reason, void *arg); | |||
| 143 | #endif | 143 | #endif |
| 144 | 144 | ||
| 145 | #endif | 145 | #endif |
| 146 | |||
| 147 | #ifdef CONFIG_GENERIC_CLOCKEVENTS | ||
| 148 | extern ktime_t clockevents_get_next_event(int cpu); | ||
| 149 | #else | ||
| 150 | static inline ktime_t clockevents_get_next_event(int cpu) | ||
| 151 | { | ||
| 152 | return (ktime_t) { .tv64 = KTIME_MAX }; | ||
| 153 | } | ||
| 154 | #endif | ||
diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h index c56457c8334e..1219be4fb42e 100644 --- a/include/linux/clocksource.h +++ b/include/linux/clocksource.h | |||
| @@ -293,7 +293,12 @@ static inline int clocksource_enable(struct clocksource *cs) | |||
| 293 | if (cs->enable) | 293 | if (cs->enable) |
| 294 | ret = cs->enable(cs); | 294 | ret = cs->enable(cs); |
| 295 | 295 | ||
| 296 | /* save mult_orig on enable */ | 296 | /* |
| 297 | * The frequency may have changed while the clocksource | ||
| 298 | * was disabled. If so the code in ->enable() must update | ||
| 299 | * the mult value to reflect the new frequency. Make sure | ||
| 300 | * mult_orig follows this change. | ||
| 301 | */ | ||
| 297 | cs->mult_orig = cs->mult; | 302 | cs->mult_orig = cs->mult; |
| 298 | 303 | ||
| 299 | return ret; | 304 | return ret; |
| @@ -309,6 +314,13 @@ static inline int clocksource_enable(struct clocksource *cs) | |||
| 309 | */ | 314 | */ |
| 310 | static inline void clocksource_disable(struct clocksource *cs) | 315 | static inline void clocksource_disable(struct clocksource *cs) |
| 311 | { | 316 | { |
| 317 | /* | ||
| 318 | * Save mult_orig in mult so clocksource_enable() can | ||
| 319 | * restore the value regardless if ->enable() updates | ||
| 320 | * the value of mult or not. | ||
| 321 | */ | ||
| 322 | cs->mult = cs->mult_orig; | ||
| 323 | |||
| 312 | if (cs->disable) | 324 | if (cs->disable) |
| 313 | cs->disable(cs); | 325 | cs->disable(cs); |
| 314 | } | 326 | } |
diff --git a/include/linux/console_struct.h b/include/linux/console_struct.h index d71f7c0f931b..38fe59dc89ae 100644 --- a/include/linux/console_struct.h +++ b/include/linux/console_struct.h | |||
| @@ -89,7 +89,6 @@ struct vc_data { | |||
| 89 | unsigned int vc_need_wrap : 1; | 89 | unsigned int vc_need_wrap : 1; |
| 90 | unsigned int vc_can_do_color : 1; | 90 | unsigned int vc_can_do_color : 1; |
| 91 | unsigned int vc_report_mouse : 2; | 91 | unsigned int vc_report_mouse : 2; |
| 92 | unsigned int vc_kmalloced : 1; | ||
| 93 | unsigned char vc_utf : 1; /* Unicode UTF-8 encoding */ | 92 | unsigned char vc_utf : 1; /* Unicode UTF-8 encoding */ |
| 94 | unsigned char vc_utf_count; | 93 | unsigned char vc_utf_count; |
| 95 | int vc_utf_char; | 94 | int vc_utf_char; |
diff --git a/include/linux/crash_dump.h b/include/linux/crash_dump.h index 2dac064d8359..0026f267da20 100644 --- a/include/linux/crash_dump.h +++ b/include/linux/crash_dump.h | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | 3 | ||
| 4 | #ifdef CONFIG_CRASH_DUMP | 4 | #ifdef CONFIG_CRASH_DUMP |
| 5 | #include <linux/kexec.h> | 5 | #include <linux/kexec.h> |
| 6 | #include <linux/smp_lock.h> | ||
| 7 | #include <linux/device.h> | 6 | #include <linux/device.h> |
| 8 | #include <linux/proc_fs.h> | 7 | #include <linux/proc_fs.h> |
| 9 | 8 | ||
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h index 0d6310657f32..655e7721580a 100644 --- a/include/linux/device-mapper.h +++ b/include/linux/device-mapper.h | |||
| @@ -84,7 +84,7 @@ typedef int (*dm_merge_fn) (struct dm_target *ti, struct bvec_merge_data *bvm, | |||
| 84 | 84 | ||
| 85 | typedef int (*iterate_devices_callout_fn) (struct dm_target *ti, | 85 | typedef int (*iterate_devices_callout_fn) (struct dm_target *ti, |
| 86 | struct dm_dev *dev, | 86 | struct dm_dev *dev, |
| 87 | sector_t physical_start, | 87 | sector_t start, sector_t len, |
| 88 | void *data); | 88 | void *data); |
| 89 | 89 | ||
| 90 | typedef int (*dm_iterate_devices_fn) (struct dm_target *ti, | 90 | typedef int (*dm_iterate_devices_fn) (struct dm_target *ti, |
| @@ -104,7 +104,7 @@ void dm_error(const char *message); | |||
| 104 | * Combine device limits. | 104 | * Combine device limits. |
| 105 | */ | 105 | */ |
| 106 | int dm_set_device_limits(struct dm_target *ti, struct dm_dev *dev, | 106 | int dm_set_device_limits(struct dm_target *ti, struct dm_dev *dev, |
| 107 | sector_t start, void *data); | 107 | sector_t start, sector_t len, void *data); |
| 108 | 108 | ||
| 109 | struct dm_dev { | 109 | struct dm_dev { |
| 110 | struct block_device *bdev; | 110 | struct block_device *bdev; |
diff --git a/include/linux/device.h b/include/linux/device.h index ed4e39f2c423..aebb81036db2 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -25,8 +25,6 @@ | |||
| 25 | #include <asm/atomic.h> | 25 | #include <asm/atomic.h> |
| 26 | #include <asm/device.h> | 26 | #include <asm/device.h> |
| 27 | 27 | ||
| 28 | #define BUS_ID_SIZE 20 | ||
| 29 | |||
| 30 | struct device; | 28 | struct device; |
| 31 | struct device_private; | 29 | struct device_private; |
| 32 | struct device_driver; | 30 | struct device_driver; |
diff --git a/include/linux/ext3_fs.h b/include/linux/ext3_fs.h index 634a5e5aba3e..7499b3667798 100644 --- a/include/linux/ext3_fs.h +++ b/include/linux/ext3_fs.h | |||
| @@ -874,7 +874,7 @@ struct buffer_head * ext3_getblk (handle_t *, struct inode *, long, int, int *); | |||
| 874 | struct buffer_head * ext3_bread (handle_t *, struct inode *, int, int, int *); | 874 | struct buffer_head * ext3_bread (handle_t *, struct inode *, int, int, int *); |
| 875 | int ext3_get_blocks_handle(handle_t *handle, struct inode *inode, | 875 | int ext3_get_blocks_handle(handle_t *handle, struct inode *inode, |
| 876 | sector_t iblock, unsigned long maxblocks, struct buffer_head *bh_result, | 876 | sector_t iblock, unsigned long maxblocks, struct buffer_head *bh_result, |
| 877 | int create, int extend_disksize); | 877 | int create); |
| 878 | 878 | ||
| 879 | extern struct inode *ext3_iget(struct super_block *, unsigned long); | 879 | extern struct inode *ext3_iget(struct super_block *, unsigned long); |
| 880 | extern int ext3_write_inode (struct inode *, int); | 880 | extern int ext3_write_inode (struct inode *, int); |
diff --git a/include/linux/flex_array.h b/include/linux/flex_array.h new file mode 100644 index 000000000000..23c1ec79a31b --- /dev/null +++ b/include/linux/flex_array.h | |||
| @@ -0,0 +1,47 @@ | |||
| 1 | #ifndef _FLEX_ARRAY_H | ||
| 2 | #define _FLEX_ARRAY_H | ||
| 3 | |||
| 4 | #include <linux/types.h> | ||
| 5 | #include <asm/page.h> | ||
| 6 | |||
| 7 | #define FLEX_ARRAY_PART_SIZE PAGE_SIZE | ||
| 8 | #define FLEX_ARRAY_BASE_SIZE PAGE_SIZE | ||
| 9 | |||
| 10 | struct flex_array_part; | ||
| 11 | |||
| 12 | /* | ||
| 13 | * This is meant to replace cases where an array-like | ||
| 14 | * structure has gotten too big to fit into kmalloc() | ||
| 15 | * and the developer is getting tempted to use | ||
| 16 | * vmalloc(). | ||
| 17 | */ | ||
| 18 | |||
| 19 | struct flex_array { | ||
| 20 | union { | ||
| 21 | struct { | ||
| 22 | int element_size; | ||
| 23 | int total_nr_elements; | ||
| 24 | struct flex_array_part *parts[0]; | ||
| 25 | }; | ||
| 26 | /* | ||
| 27 | * This little trick makes sure that | ||
| 28 | * sizeof(flex_array) == PAGE_SIZE | ||
| 29 | */ | ||
| 30 | char padding[FLEX_ARRAY_BASE_SIZE]; | ||
| 31 | }; | ||
| 32 | }; | ||
| 33 | |||
| 34 | #define FLEX_ARRAY_INIT(size, total) { { {\ | ||
| 35 | .element_size = (size), \ | ||
| 36 | .total_nr_elements = (total), \ | ||
| 37 | } } } | ||
| 38 | |||
| 39 | struct flex_array *flex_array_alloc(int element_size, int total, gfp_t flags); | ||
| 40 | int flex_array_prealloc(struct flex_array *fa, int start, int end, gfp_t flags); | ||
| 41 | void flex_array_free(struct flex_array *fa); | ||
| 42 | void flex_array_free_parts(struct flex_array *fa); | ||
| 43 | int flex_array_put(struct flex_array *fa, int element_nr, void *src, | ||
| 44 | gfp_t flags); | ||
| 45 | void *flex_array_get(struct flex_array *fa, int element_nr); | ||
| 46 | |||
| 47 | #endif /* _FLEX_ARRAY_H */ | ||
diff --git a/include/linux/fs.h b/include/linux/fs.h index 0872372184fe..a36ffa5a77a4 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -1946,6 +1946,7 @@ extern void putname(const char *name); | |||
| 1946 | extern int register_blkdev(unsigned int, const char *); | 1946 | extern int register_blkdev(unsigned int, const char *); |
| 1947 | extern void unregister_blkdev(unsigned int, const char *); | 1947 | extern void unregister_blkdev(unsigned int, const char *); |
| 1948 | extern struct block_device *bdget(dev_t); | 1948 | extern struct block_device *bdget(dev_t); |
| 1949 | extern struct block_device *bdgrab(struct block_device *bdev); | ||
| 1949 | extern void bd_set_size(struct block_device *, loff_t size); | 1950 | extern void bd_set_size(struct block_device *, loff_t size); |
| 1950 | extern void bd_forget(struct inode *inode); | 1951 | extern void bd_forget(struct inode *inode); |
| 1951 | extern void bdput(struct block_device *); | 1952 | extern void bdput(struct block_device *); |
diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h index 6c3de999fb34..4d6f47b51189 100644 --- a/include/linux/fsnotify_backend.h +++ b/include/linux/fsnotify_backend.h | |||
| @@ -352,7 +352,7 @@ extern void fsnotify_unmount_inodes(struct list_head *list); | |||
| 352 | /* put here because inotify does some weird stuff when destroying watches */ | 352 | /* put here because inotify does some weird stuff when destroying watches */ |
| 353 | extern struct fsnotify_event *fsnotify_create_event(struct inode *to_tell, __u32 mask, | 353 | extern struct fsnotify_event *fsnotify_create_event(struct inode *to_tell, __u32 mask, |
| 354 | void *data, int data_is, const char *name, | 354 | void *data, int data_is, const char *name, |
| 355 | u32 cookie); | 355 | u32 cookie, gfp_t gfp); |
| 356 | 356 | ||
| 357 | #else | 357 | #else |
| 358 | 358 | ||
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h index 45257475623c..8246c697863d 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h | |||
| @@ -2,7 +2,9 @@ | |||
| 2 | #define LINUX_HARDIRQ_H | 2 | #define LINUX_HARDIRQ_H |
| 3 | 3 | ||
| 4 | #include <linux/preempt.h> | 4 | #include <linux/preempt.h> |
| 5 | #ifdef CONFIG_PREEMPT | ||
| 5 | #include <linux/smp_lock.h> | 6 | #include <linux/smp_lock.h> |
| 7 | #endif | ||
| 6 | #include <linux/lockdep.h> | 8 | #include <linux/lockdep.h> |
| 7 | #include <linux/ftrace_irq.h> | 9 | #include <linux/ftrace_irq.h> |
| 8 | #include <asm/hardirq.h> | 10 | #include <asm/hardirq.h> |
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 54648e625efd..4759917adc71 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h | |||
| @@ -448,7 +448,7 @@ extern void timer_stats_update_stats(void *timer, pid_t pid, void *startf, | |||
| 448 | 448 | ||
| 449 | static inline void timer_stats_account_hrtimer(struct hrtimer *timer) | 449 | static inline void timer_stats_account_hrtimer(struct hrtimer *timer) |
| 450 | { | 450 | { |
| 451 | if (likely(!timer->start_pid)) | 451 | if (likely(!timer->start_site)) |
| 452 | return; | 452 | return; |
| 453 | timer_stats_update_stats(timer, timer->start_pid, timer->start_site, | 453 | timer_stats_update_stats(timer, timer->start_pid, timer->start_site, |
| 454 | timer->function, timer->start_comm, 0); | 454 | timer->function, timer->start_comm, 0); |
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 2721f07e9354..35e7df1e9f30 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include <linux/irqflags.h> | 14 | #include <linux/irqflags.h> |
| 15 | #include <linux/smp.h> | 15 | #include <linux/smp.h> |
| 16 | #include <linux/percpu.h> | 16 | #include <linux/percpu.h> |
| 17 | #include <linux/hrtimer.h> | ||
| 17 | 18 | ||
| 18 | #include <asm/atomic.h> | 19 | #include <asm/atomic.h> |
| 19 | #include <asm/ptrace.h> | 20 | #include <asm/ptrace.h> |
| @@ -64,11 +65,13 @@ | |||
| 64 | * IRQTF_RUNTHREAD - signals that the interrupt handler thread should run | 65 | * IRQTF_RUNTHREAD - signals that the interrupt handler thread should run |
| 65 | * IRQTF_DIED - handler thread died | 66 | * IRQTF_DIED - handler thread died |
| 66 | * IRQTF_WARNED - warning "IRQ_WAKE_THREAD w/o thread_fn" has been printed | 67 | * IRQTF_WARNED - warning "IRQ_WAKE_THREAD w/o thread_fn" has been printed |
| 68 | * IRQTF_AFFINITY - irq thread is requested to adjust affinity | ||
| 67 | */ | 69 | */ |
| 68 | enum { | 70 | enum { |
| 69 | IRQTF_RUNTHREAD, | 71 | IRQTF_RUNTHREAD, |
| 70 | IRQTF_DIED, | 72 | IRQTF_DIED, |
| 71 | IRQTF_WARNED, | 73 | IRQTF_WARNED, |
| 74 | IRQTF_AFFINITY, | ||
| 72 | }; | 75 | }; |
| 73 | 76 | ||
| 74 | typedef irqreturn_t (*irq_handler_t)(int, void *); | 77 | typedef irqreturn_t (*irq_handler_t)(int, void *); |
| @@ -517,6 +520,31 @@ extern void tasklet_kill_immediate(struct tasklet_struct *t, unsigned int cpu); | |||
| 517 | extern void tasklet_init(struct tasklet_struct *t, | 520 | extern void tasklet_init(struct tasklet_struct *t, |
| 518 | void (*func)(unsigned long), unsigned long data); | 521 | void (*func)(unsigned long), unsigned long data); |
| 519 | 522 | ||
| 523 | struct tasklet_hrtimer { | ||
| 524 | struct hrtimer timer; | ||
| 525 | struct tasklet_struct tasklet; | ||
| 526 | enum hrtimer_restart (*function)(struct hrtimer *); | ||
| 527 | }; | ||
| 528 | |||
| 529 | extern void | ||
| 530 | tasklet_hrtimer_init(struct tasklet_hrtimer *ttimer, | ||
| 531 | enum hrtimer_restart (*function)(struct hrtimer *), | ||
| 532 | clockid_t which_clock, enum hrtimer_mode mode); | ||
| 533 | |||
| 534 | static inline | ||
| 535 | int tasklet_hrtimer_start(struct tasklet_hrtimer *ttimer, ktime_t time, | ||
| 536 | const enum hrtimer_mode mode) | ||
| 537 | { | ||
| 538 | return hrtimer_start(&ttimer->timer, time, mode); | ||
| 539 | } | ||
| 540 | |||
| 541 | static inline | ||
| 542 | void tasklet_hrtimer_cancel(struct tasklet_hrtimer *ttimer) | ||
| 543 | { | ||
| 544 | hrtimer_cancel(&ttimer->timer); | ||
| 545 | tasklet_kill(&ttimer->tasklet); | ||
| 546 | } | ||
| 547 | |||
| 520 | /* | 548 | /* |
| 521 | * Autoprobing for irqs: | 549 | * Autoprobing for irqs: |
| 522 | * | 550 | * |
diff --git a/include/linux/iocontext.h b/include/linux/iocontext.h index dd05434fa45f..4da4a75c3f1e 100644 --- a/include/linux/iocontext.h +++ b/include/linux/iocontext.h | |||
| @@ -92,7 +92,7 @@ static inline struct io_context *ioc_task_link(struct io_context *ioc) | |||
| 92 | * a race). | 92 | * a race). |
| 93 | */ | 93 | */ |
| 94 | if (ioc && atomic_long_inc_not_zero(&ioc->refcount)) { | 94 | if (ioc && atomic_long_inc_not_zero(&ioc->refcount)) { |
| 95 | atomic_long_inc(&ioc->refcount); | 95 | atomic_inc(&ioc->nr_tasks); |
| 96 | return ioc; | 96 | return ioc; |
| 97 | } | 97 | } |
| 98 | 98 | ||
diff --git a/include/linux/kmemleak.h b/include/linux/kmemleak.h index 7796aed6cdd5..6a63807f714e 100644 --- a/include/linux/kmemleak.h +++ b/include/linux/kmemleak.h | |||
| @@ -27,6 +27,7 @@ extern void kmemleak_init(void); | |||
| 27 | extern void kmemleak_alloc(const void *ptr, size_t size, int min_count, | 27 | extern void kmemleak_alloc(const void *ptr, size_t size, int min_count, |
| 28 | gfp_t gfp); | 28 | gfp_t gfp); |
| 29 | extern void kmemleak_free(const void *ptr); | 29 | extern void kmemleak_free(const void *ptr); |
| 30 | extern void kmemleak_free_part(const void *ptr, size_t size); | ||
| 30 | extern void kmemleak_padding(const void *ptr, unsigned long offset, | 31 | extern void kmemleak_padding(const void *ptr, unsigned long offset, |
| 31 | size_t size); | 32 | size_t size); |
| 32 | extern void kmemleak_not_leak(const void *ptr); | 33 | extern void kmemleak_not_leak(const void *ptr); |
| @@ -71,6 +72,9 @@ static inline void kmemleak_alloc_recursive(const void *ptr, size_t size, | |||
| 71 | static inline void kmemleak_free(const void *ptr) | 72 | static inline void kmemleak_free(const void *ptr) |
| 72 | { | 73 | { |
| 73 | } | 74 | } |
| 75 | static inline void kmemleak_free_part(const void *ptr, size_t size) | ||
| 76 | { | ||
| 77 | } | ||
| 74 | static inline void kmemleak_free_recursive(const void *ptr, unsigned long flags) | 78 | static inline void kmemleak_free_recursive(const void *ptr, unsigned long flags) |
| 75 | { | 79 | { |
| 76 | } | 80 | } |
diff --git a/include/linux/lguest.h b/include/linux/lguest.h index 7bc1440fc473..2fb1dcbcb5aa 100644 --- a/include/linux/lguest.h +++ b/include/linux/lguest.h | |||
| @@ -1,5 +1,7 @@ | |||
| 1 | /* Things the lguest guest needs to know. Note: like all lguest interfaces, | 1 | /* |
| 2 | * this is subject to wild and random change between versions. */ | 2 | * Things the lguest guest needs to know. Note: like all lguest interfaces, |
| 3 | * this is subject to wild and random change between versions. | ||
| 4 | */ | ||
| 3 | #ifndef _LINUX_LGUEST_H | 5 | #ifndef _LINUX_LGUEST_H |
| 4 | #define _LINUX_LGUEST_H | 6 | #define _LINUX_LGUEST_H |
| 5 | 7 | ||
| @@ -11,32 +13,41 @@ | |||
| 11 | #define LG_CLOCK_MIN_DELTA 100UL | 13 | #define LG_CLOCK_MIN_DELTA 100UL |
| 12 | #define LG_CLOCK_MAX_DELTA ULONG_MAX | 14 | #define LG_CLOCK_MAX_DELTA ULONG_MAX |
| 13 | 15 | ||
| 14 | /*G:032 The second method of communicating with the Host is to via "struct | 16 | /*G:031 |
| 17 | * The second method of communicating with the Host is to via "struct | ||
| 15 | * lguest_data". Once the Guest's initialization hypercall tells the Host where | 18 | * lguest_data". Once the Guest's initialization hypercall tells the Host where |
| 16 | * this is, the Guest and Host both publish information in it. :*/ | 19 | * this is, the Guest and Host both publish information in it. |
| 17 | struct lguest_data | 20 | :*/ |
| 18 | { | 21 | struct lguest_data { |
| 19 | /* 512 == enabled (same as eflags in normal hardware). The Guest | 22 | /* |
| 20 | * changes interrupts so often that a hypercall is too slow. */ | 23 | * 512 == enabled (same as eflags in normal hardware). The Guest |
| 24 | * changes interrupts so often that a hypercall is too slow. | ||
| 25 | */ | ||
| 21 | unsigned int irq_enabled; | 26 | unsigned int irq_enabled; |
| 22 | /* Fine-grained interrupt disabling by the Guest */ | 27 | /* Fine-grained interrupt disabling by the Guest */ |
| 23 | DECLARE_BITMAP(blocked_interrupts, LGUEST_IRQS); | 28 | DECLARE_BITMAP(blocked_interrupts, LGUEST_IRQS); |
| 24 | 29 | ||
| 25 | /* The Host writes the virtual address of the last page fault here, | 30 | /* |
| 31 | * The Host writes the virtual address of the last page fault here, | ||
| 26 | * which saves the Guest a hypercall. CR2 is the native register where | 32 | * which saves the Guest a hypercall. CR2 is the native register where |
| 27 | * this address would normally be found. */ | 33 | * this address would normally be found. |
| 34 | */ | ||
| 28 | unsigned long cr2; | 35 | unsigned long cr2; |
| 29 | 36 | ||
| 30 | /* Wallclock time set by the Host. */ | 37 | /* Wallclock time set by the Host. */ |
| 31 | struct timespec time; | 38 | struct timespec time; |
| 32 | 39 | ||
| 33 | /* Interrupt pending set by the Host. The Guest should do a hypercall | 40 | /* |
| 34 | * if it re-enables interrupts and sees this set (to X86_EFLAGS_IF). */ | 41 | * Interrupt pending set by the Host. The Guest should do a hypercall |
| 42 | * if it re-enables interrupts and sees this set (to X86_EFLAGS_IF). | ||
| 43 | */ | ||
| 35 | int irq_pending; | 44 | int irq_pending; |
| 36 | 45 | ||
| 37 | /* Async hypercall ring. Instead of directly making hypercalls, we can | 46 | /* |
| 47 | * Async hypercall ring. Instead of directly making hypercalls, we can | ||
| 38 | * place them in here for processing the next time the Host wants. | 48 | * place them in here for processing the next time the Host wants. |
| 39 | * This batching can be quite efficient. */ | 49 | * This batching can be quite efficient. |
| 50 | */ | ||
| 40 | 51 | ||
| 41 | /* 0xFF == done (set by Host), 0 == pending (set by Guest). */ | 52 | /* 0xFF == done (set by Host), 0 == pending (set by Guest). */ |
| 42 | u8 hcall_status[LHCALL_RING_SIZE]; | 53 | u8 hcall_status[LHCALL_RING_SIZE]; |
diff --git a/include/linux/lguest_launcher.h b/include/linux/lguest_launcher.h index bfefbdf7498a..495203ff221c 100644 --- a/include/linux/lguest_launcher.h +++ b/include/linux/lguest_launcher.h | |||
| @@ -29,8 +29,10 @@ struct lguest_device_desc { | |||
| 29 | __u8 type; | 29 | __u8 type; |
| 30 | /* The number of virtqueues (first in config array) */ | 30 | /* The number of virtqueues (first in config array) */ |
| 31 | __u8 num_vq; | 31 | __u8 num_vq; |
| 32 | /* The number of bytes of feature bits. Multiply by 2: one for host | 32 | /* |
| 33 | * features and one for Guest acknowledgements. */ | 33 | * The number of bytes of feature bits. Multiply by 2: one for host |
| 34 | * features and one for Guest acknowledgements. | ||
| 35 | */ | ||
| 34 | __u8 feature_len; | 36 | __u8 feature_len; |
| 35 | /* The number of bytes of the config array after virtqueues. */ | 37 | /* The number of bytes of the config array after virtqueues. */ |
| 36 | __u8 config_len; | 38 | __u8 config_len; |
| @@ -39,8 +41,10 @@ struct lguest_device_desc { | |||
| 39 | __u8 config[0]; | 41 | __u8 config[0]; |
| 40 | }; | 42 | }; |
| 41 | 43 | ||
| 42 | /*D:135 This is how we expect the device configuration field for a virtqueue | 44 | /*D:135 |
| 43 | * to be laid out in config space. */ | 45 | * This is how we expect the device configuration field for a virtqueue |
| 46 | * to be laid out in config space. | ||
| 47 | */ | ||
| 44 | struct lguest_vqconfig { | 48 | struct lguest_vqconfig { |
| 45 | /* The number of entries in the virtio_ring */ | 49 | /* The number of entries in the virtio_ring */ |
| 46 | __u16 num; | 50 | __u16 num; |
| @@ -61,7 +65,9 @@ enum lguest_req | |||
| 61 | LHREQ_EVENTFD, /* + address, fd. */ | 65 | LHREQ_EVENTFD, /* + address, fd. */ |
| 62 | }; | 66 | }; |
| 63 | 67 | ||
| 64 | /* The alignment to use between consumer and producer parts of vring. | 68 | /* |
| 65 | * x86 pagesize for historical reasons. */ | 69 | * The alignment to use between consumer and producer parts of vring. |
| 70 | * x86 pagesize for historical reasons. | ||
| 71 | */ | ||
| 66 | #define LGUEST_VRING_ALIGN 4096 | 72 | #define LGUEST_VRING_ALIGN 4096 |
| 67 | #endif /* _LINUX_LGUEST_LAUNCHER */ | 73 | #endif /* _LINUX_LGUEST_LAUNCHER */ |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 3d501db36a26..e5b6e33c6571 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -385,6 +385,7 @@ enum { | |||
| 385 | not multiple of 16 bytes */ | 385 | not multiple of 16 bytes */ |
| 386 | ATA_HORKAGE_FIRMWARE_WARN = (1 << 12), /* firmware update warning */ | 386 | ATA_HORKAGE_FIRMWARE_WARN = (1 << 12), /* firmware update warning */ |
| 387 | ATA_HORKAGE_1_5_GBPS = (1 << 13), /* force 1.5 Gbps */ | 387 | ATA_HORKAGE_1_5_GBPS = (1 << 13), /* force 1.5 Gbps */ |
| 388 | ATA_HORKAGE_NOSETXFER = (1 << 14), /* skip SETXFER, SATA only */ | ||
| 388 | 389 | ||
| 389 | /* DMA mask for user DMA control: User visible values; DO NOT | 390 | /* DMA mask for user DMA control: User visible values; DO NOT |
| 390 | renumber */ | 391 | renumber */ |
| @@ -588,6 +589,7 @@ struct ata_device { | |||
| 588 | #endif | 589 | #endif |
| 589 | /* n_sector is CLEAR_BEGIN, read comment above CLEAR_BEGIN */ | 590 | /* n_sector is CLEAR_BEGIN, read comment above CLEAR_BEGIN */ |
| 590 | u64 n_sectors; /* size of device, if ATA */ | 591 | u64 n_sectors; /* size of device, if ATA */ |
| 592 | u64 n_native_sectors; /* native size, if ATA */ | ||
| 591 | unsigned int class; /* ATA_DEV_xxx */ | 593 | unsigned int class; /* ATA_DEV_xxx */ |
| 592 | unsigned long unpark_deadline; | 594 | unsigned long unpark_deadline; |
| 593 | 595 | ||
diff --git a/include/linux/of_mdio.h b/include/linux/of_mdio.h index c9663c690303..53b94e025c7c 100644 --- a/include/linux/of_mdio.h +++ b/include/linux/of_mdio.h | |||
| @@ -18,5 +18,8 @@ extern struct phy_device *of_phy_connect(struct net_device *dev, | |||
| 18 | struct device_node *phy_np, | 18 | struct device_node *phy_np, |
| 19 | void (*hndlr)(struct net_device *), | 19 | void (*hndlr)(struct net_device *), |
| 20 | u32 flags, phy_interface_t iface); | 20 | u32 flags, phy_interface_t iface); |
| 21 | extern struct phy_device *of_phy_connect_fixed_link(struct net_device *dev, | ||
| 22 | void (*hndlr)(struct net_device *), | ||
| 23 | phy_interface_t iface); | ||
| 21 | 24 | ||
| 22 | #endif /* __LINUX_OF_MDIO_H */ | 25 | #endif /* __LINUX_OF_MDIO_H */ |
diff --git a/include/linux/perf_counter.h b/include/linux/perf_counter.h index 5e970c7d3fd5..bd15d7a5f5ce 100644 --- a/include/linux/perf_counter.h +++ b/include/linux/perf_counter.h | |||
| @@ -120,8 +120,9 @@ enum perf_counter_sample_format { | |||
| 120 | PERF_SAMPLE_ID = 1U << 6, | 120 | PERF_SAMPLE_ID = 1U << 6, |
| 121 | PERF_SAMPLE_CPU = 1U << 7, | 121 | PERF_SAMPLE_CPU = 1U << 7, |
| 122 | PERF_SAMPLE_PERIOD = 1U << 8, | 122 | PERF_SAMPLE_PERIOD = 1U << 8, |
| 123 | PERF_SAMPLE_STREAM_ID = 1U << 9, | ||
| 123 | 124 | ||
| 124 | PERF_SAMPLE_MAX = 1U << 9, /* non-ABI */ | 125 | PERF_SAMPLE_MAX = 1U << 10, /* non-ABI */ |
| 125 | }; | 126 | }; |
| 126 | 127 | ||
| 127 | /* | 128 | /* |
| @@ -312,16 +313,7 @@ enum perf_event_type { | |||
| 312 | * struct perf_event_header header; | 313 | * struct perf_event_header header; |
| 313 | * u64 time; | 314 | * u64 time; |
| 314 | * u64 id; | 315 | * u64 id; |
| 315 | * u64 sample_period; | 316 | * u64 stream_id; |
| 316 | * }; | ||
| 317 | */ | ||
| 318 | PERF_EVENT_PERIOD = 4, | ||
| 319 | |||
| 320 | /* | ||
| 321 | * struct { | ||
| 322 | * struct perf_event_header header; | ||
| 323 | * u64 time; | ||
| 324 | * u64 id; | ||
| 325 | * }; | 317 | * }; |
| 326 | */ | 318 | */ |
| 327 | PERF_EVENT_THROTTLE = 5, | 319 | PERF_EVENT_THROTTLE = 5, |
| @@ -356,6 +348,7 @@ enum perf_event_type { | |||
| 356 | * { u64 time; } && PERF_SAMPLE_TIME | 348 | * { u64 time; } && PERF_SAMPLE_TIME |
| 357 | * { u64 addr; } && PERF_SAMPLE_ADDR | 349 | * { u64 addr; } && PERF_SAMPLE_ADDR |
| 358 | * { u64 id; } && PERF_SAMPLE_ID | 350 | * { u64 id; } && PERF_SAMPLE_ID |
| 351 | * { u64 stream_id;} && PERF_SAMPLE_STREAM_ID | ||
| 359 | * { u32 cpu, res; } && PERF_SAMPLE_CPU | 352 | * { u32 cpu, res; } && PERF_SAMPLE_CPU |
| 360 | * { u64 period; } && PERF_SAMPLE_PERIOD | 353 | * { u64 period; } && PERF_SAMPLE_PERIOD |
| 361 | * | 354 | * |
diff --git a/include/linux/personality.h b/include/linux/personality.h index a84e9ff9b27e..126120819a0d 100644 --- a/include/linux/personality.h +++ b/include/linux/personality.h | |||
| @@ -40,7 +40,10 @@ enum { | |||
| 40 | * Security-relevant compatibility flags that must be | 40 | * Security-relevant compatibility flags that must be |
| 41 | * cleared upon setuid or setgid exec: | 41 | * cleared upon setuid or setgid exec: |
| 42 | */ | 42 | */ |
| 43 | #define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC|ADDR_NO_RANDOMIZE) | 43 | #define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC | \ |
| 44 | ADDR_NO_RANDOMIZE | \ | ||
| 45 | ADDR_COMPAT_LAYOUT | \ | ||
| 46 | MMAP_PAGE_ZERO) | ||
| 44 | 47 | ||
| 45 | /* | 48 | /* |
| 46 | * Personality types. | 49 | * Personality types. |
diff --git a/include/linux/pps.h b/include/linux/pps.h index cfe5c7214ec6..0194ab06177b 100644 --- a/include/linux/pps.h +++ b/include/linux/pps.h | |||
| @@ -22,6 +22,8 @@ | |||
| 22 | #ifndef _PPS_H_ | 22 | #ifndef _PPS_H_ |
| 23 | #define _PPS_H_ | 23 | #define _PPS_H_ |
| 24 | 24 | ||
| 25 | #include <linux/types.h> | ||
| 26 | |||
| 25 | #define PPS_VERSION "5.3.6" | 27 | #define PPS_VERSION "5.3.6" |
| 26 | #define PPS_MAX_SOURCES 16 /* should be enough... */ | 28 | #define PPS_MAX_SOURCES 16 /* should be enough... */ |
| 27 | 29 | ||
diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h index 7bc457593684..26361c4c037a 100644 --- a/include/linux/quotaops.h +++ b/include/linux/quotaops.h | |||
| @@ -7,7 +7,6 @@ | |||
| 7 | #ifndef _LINUX_QUOTAOPS_ | 7 | #ifndef _LINUX_QUOTAOPS_ |
| 8 | #define _LINUX_QUOTAOPS_ | 8 | #define _LINUX_QUOTAOPS_ |
| 9 | 9 | ||
| 10 | #include <linux/smp_lock.h> | ||
| 11 | #include <linux/fs.h> | 10 | #include <linux/fs.h> |
| 12 | 11 | ||
| 13 | static inline struct quota_info *sb_dqopt(struct super_block *sb) | 12 | static inline struct quota_info *sb_dqopt(struct super_block *sb) |
diff --git a/include/linux/rfkill.h b/include/linux/rfkill.h index 2ce29831feb6..278777fa8a3a 100644 --- a/include/linux/rfkill.h +++ b/include/linux/rfkill.h | |||
| @@ -224,7 +224,7 @@ void rfkill_destroy(struct rfkill *rfkill); | |||
| 224 | * should be blocked) so that drivers need not keep track of the soft | 224 | * should be blocked) so that drivers need not keep track of the soft |
| 225 | * block state -- which they might not be able to. | 225 | * block state -- which they might not be able to. |
| 226 | */ | 226 | */ |
| 227 | bool __must_check rfkill_set_hw_state(struct rfkill *rfkill, bool blocked); | 227 | bool rfkill_set_hw_state(struct rfkill *rfkill, bool blocked); |
| 228 | 228 | ||
| 229 | /** | 229 | /** |
| 230 | * rfkill_set_sw_state - Set the internal rfkill software block state | 230 | * rfkill_set_sw_state - Set the internal rfkill software block state |
diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h index e5996984ddd0..9aaf5bfdad1a 100644 --- a/include/linux/scatterlist.h +++ b/include/linux/scatterlist.h | |||
| @@ -242,6 +242,8 @@ size_t sg_copy_to_buffer(struct scatterlist *sgl, unsigned int nents, | |||
| 242 | */ | 242 | */ |
| 243 | 243 | ||
| 244 | #define SG_MITER_ATOMIC (1 << 0) /* use kmap_atomic */ | 244 | #define SG_MITER_ATOMIC (1 << 0) /* use kmap_atomic */ |
| 245 | #define SG_MITER_TO_SG (1 << 1) /* flush back to phys on unmap */ | ||
| 246 | #define SG_MITER_FROM_SG (1 << 2) /* nop */ | ||
| 245 | 247 | ||
| 246 | struct sg_mapping_iter { | 248 | struct sg_mapping_iter { |
| 247 | /* the following three fields can be accessed directly */ | 249 | /* the following three fields can be accessed directly */ |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 16a982e389fb..3ab08e4bb6b8 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -209,7 +209,7 @@ extern unsigned long long time_sync_thresh; | |||
| 209 | ((task->state & (__TASK_STOPPED | __TASK_TRACED)) != 0) | 209 | ((task->state & (__TASK_STOPPED | __TASK_TRACED)) != 0) |
| 210 | #define task_contributes_to_load(task) \ | 210 | #define task_contributes_to_load(task) \ |
| 211 | ((task->state & TASK_UNINTERRUPTIBLE) != 0 && \ | 211 | ((task->state & TASK_UNINTERRUPTIBLE) != 0 && \ |
| 212 | (task->flags & PF_FROZEN) == 0) | 212 | (task->flags & PF_FREEZING) == 0) |
| 213 | 213 | ||
| 214 | #define __set_task_state(tsk, state_value) \ | 214 | #define __set_task_state(tsk, state_value) \ |
| 215 | do { (tsk)->state = (state_value); } while (0) | 215 | do { (tsk)->state = (state_value); } while (0) |
| @@ -1680,6 +1680,7 @@ extern cputime_t task_gtime(struct task_struct *p); | |||
| 1680 | #define PF_MEMALLOC 0x00000800 /* Allocating memory */ | 1680 | #define PF_MEMALLOC 0x00000800 /* Allocating memory */ |
| 1681 | #define PF_FLUSHER 0x00001000 /* responsible for disk writeback */ | 1681 | #define PF_FLUSHER 0x00001000 /* responsible for disk writeback */ |
| 1682 | #define PF_USED_MATH 0x00002000 /* if unset the fpu must be initialized before use */ | 1682 | #define PF_USED_MATH 0x00002000 /* if unset the fpu must be initialized before use */ |
| 1683 | #define PF_FREEZING 0x00004000 /* freeze in progress. do not account to load */ | ||
| 1683 | #define PF_NOFREEZE 0x00008000 /* this thread should not be frozen */ | 1684 | #define PF_NOFREEZE 0x00008000 /* this thread should not be frozen */ |
| 1684 | #define PF_FROZEN 0x00010000 /* frozen for system suspend */ | 1685 | #define PF_FROZEN 0x00010000 /* frozen for system suspend */ |
| 1685 | #define PF_FSTRANS 0x00020000 /* inside a filesystem transaction */ | 1686 | #define PF_FSTRANS 0x00020000 /* inside a filesystem transaction */ |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index b47b3f039d14..f2c69a2cca17 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
| @@ -1342,12 +1342,12 @@ static inline int skb_network_offset(const struct sk_buff *skb) | |||
| 1342 | * shifting the start of the packet by 2 bytes. Drivers should do this | 1342 | * shifting the start of the packet by 2 bytes. Drivers should do this |
| 1343 | * with: | 1343 | * with: |
| 1344 | * | 1344 | * |
| 1345 | * skb_reserve(NET_IP_ALIGN); | 1345 | * skb_reserve(skb, NET_IP_ALIGN); |
| 1346 | * | 1346 | * |
| 1347 | * The downside to this alignment of the IP header is that the DMA is now | 1347 | * The downside to this alignment of the IP header is that the DMA is now |
| 1348 | * unaligned. On some architectures the cost of an unaligned DMA is high | 1348 | * unaligned. On some architectures the cost of an unaligned DMA is high |
| 1349 | * and this cost outweighs the gains made by aligning the IP header. | 1349 | * and this cost outweighs the gains made by aligning the IP header. |
| 1350 | * | 1350 | * |
| 1351 | * Since this trade off varies between architectures, we allow NET_IP_ALIGN | 1351 | * Since this trade off varies between architectures, we allow NET_IP_ALIGN |
| 1352 | * to be overridden. | 1352 | * to be overridden. |
| 1353 | */ | 1353 | */ |
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h index 4dcbc2c71491..c1c862b1d01a 100644 --- a/include/linux/slub_def.h +++ b/include/linux/slub_def.h | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | #include <linux/workqueue.h> | 11 | #include <linux/workqueue.h> |
| 12 | #include <linux/kobject.h> | 12 | #include <linux/kobject.h> |
| 13 | #include <linux/kmemtrace.h> | 13 | #include <linux/kmemtrace.h> |
| 14 | #include <linux/kmemleak.h> | ||
| 14 | 15 | ||
| 15 | enum stat_item { | 16 | enum stat_item { |
| 16 | ALLOC_FASTPATH, /* Allocation from cpu slab */ | 17 | ALLOC_FASTPATH, /* Allocation from cpu slab */ |
| @@ -233,6 +234,7 @@ static __always_inline void *kmalloc_large(size_t size, gfp_t flags) | |||
| 233 | unsigned int order = get_order(size); | 234 | unsigned int order = get_order(size); |
| 234 | void *ret = (void *) __get_free_pages(flags | __GFP_COMP, order); | 235 | void *ret = (void *) __get_free_pages(flags | __GFP_COMP, order); |
| 235 | 236 | ||
| 237 | kmemleak_alloc(ret, size, 1, flags); | ||
| 236 | trace_kmalloc(_THIS_IP_, ret, size, PAGE_SIZE << order, flags); | 238 | trace_kmalloc(_THIS_IP_, ret, size, PAGE_SIZE << order, flags); |
| 237 | 239 | ||
| 238 | return ret; | 240 | return ret; |
diff --git a/include/linux/sunrpc/xdr.h b/include/linux/sunrpc/xdr.h index d8910b68e1bd..b99c625fddfe 100644 --- a/include/linux/sunrpc/xdr.h +++ b/include/linux/sunrpc/xdr.h | |||
| @@ -12,7 +12,6 @@ | |||
| 12 | #include <linux/uio.h> | 12 | #include <linux/uio.h> |
| 13 | #include <asm/byteorder.h> | 13 | #include <asm/byteorder.h> |
| 14 | #include <linux/scatterlist.h> | 14 | #include <linux/scatterlist.h> |
| 15 | #include <linux/smp_lock.h> | ||
| 16 | 15 | ||
| 17 | /* | 16 | /* |
| 18 | * Buffer adjustment | 17 | * Buffer adjustment |
diff --git a/include/linux/tty.h b/include/linux/tty.h index 1488d8c81aac..e8c6c9136c97 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h | |||
| @@ -394,6 +394,7 @@ extern void __do_SAK(struct tty_struct *tty); | |||
| 394 | extern void disassociate_ctty(int priv); | 394 | extern void disassociate_ctty(int priv); |
| 395 | extern void no_tty(void); | 395 | extern void no_tty(void); |
| 396 | extern void tty_flip_buffer_push(struct tty_struct *tty); | 396 | extern void tty_flip_buffer_push(struct tty_struct *tty); |
| 397 | extern void tty_flush_to_ldisc(struct tty_struct *tty); | ||
| 397 | extern void tty_buffer_free_all(struct tty_struct *tty); | 398 | extern void tty_buffer_free_all(struct tty_struct *tty); |
| 398 | extern void tty_buffer_flush(struct tty_struct *tty); | 399 | extern void tty_buffer_flush(struct tty_struct *tty); |
| 399 | extern void tty_buffer_init(struct tty_struct *tty); | 400 | extern void tty_buffer_init(struct tty_struct *tty); |
diff --git a/include/linux/uio.h b/include/linux/uio.h index b7fe13883bdb..98c114323a8b 100644 --- a/include/linux/uio.h +++ b/include/linux/uio.h | |||
| @@ -19,15 +19,6 @@ struct iovec | |||
| 19 | __kernel_size_t iov_len; /* Must be size_t (1003.1g) */ | 19 | __kernel_size_t iov_len; /* Must be size_t (1003.1g) */ |
| 20 | }; | 20 | }; |
| 21 | 21 | ||
| 22 | #ifdef __KERNEL__ | ||
| 23 | |||
| 24 | struct kvec { | ||
| 25 | void *iov_base; /* and that should *never* hold a userland pointer */ | ||
| 26 | size_t iov_len; | ||
| 27 | }; | ||
| 28 | |||
| 29 | #endif | ||
| 30 | |||
| 31 | /* | 22 | /* |
| 32 | * UIO_MAXIOV shall be at least 16 1003.1g (5.4.1.1) | 23 | * UIO_MAXIOV shall be at least 16 1003.1g (5.4.1.1) |
| 33 | */ | 24 | */ |
| @@ -35,6 +26,13 @@ struct kvec { | |||
| 35 | #define UIO_FASTIOV 8 | 26 | #define UIO_FASTIOV 8 |
| 36 | #define UIO_MAXIOV 1024 | 27 | #define UIO_MAXIOV 1024 |
| 37 | 28 | ||
| 29 | #ifdef __KERNEL__ | ||
| 30 | |||
| 31 | struct kvec { | ||
| 32 | void *iov_base; /* and that should *never* hold a userland pointer */ | ||
| 33 | size_t iov_len; | ||
| 34 | }; | ||
| 35 | |||
| 38 | /* | 36 | /* |
| 39 | * Total number of bytes covered by an iovec. | 37 | * Total number of bytes covered by an iovec. |
| 40 | * | 38 | * |
| @@ -53,5 +51,6 @@ static inline size_t iov_length(const struct iovec *iov, unsigned long nr_segs) | |||
| 53 | } | 51 | } |
| 54 | 52 | ||
| 55 | unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to); | 53 | unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to); |
| 54 | #endif | ||
| 56 | 55 | ||
| 57 | #endif | 56 | #endif |
diff --git a/include/linux/usb.h b/include/linux/usb.h index 84929e914034..b1e3c2fbfe11 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
| @@ -888,8 +888,6 @@ struct usb_driver { | |||
| 888 | * struct usb_device_driver - identifies USB device driver to usbcore | 888 | * struct usb_device_driver - identifies USB device driver to usbcore |
| 889 | * @name: The driver name should be unique among USB drivers, | 889 | * @name: The driver name should be unique among USB drivers, |
| 890 | * and should normally be the same as the module name. | 890 | * and should normally be the same as the module name. |
| 891 | * @nodename: Callback to provide a naming hint for a possible | ||
| 892 | * device node to create. | ||
| 893 | * @probe: Called to see if the driver is willing to manage a particular | 891 | * @probe: Called to see if the driver is willing to manage a particular |
| 894 | * device. If it is, probe returns zero and uses dev_set_drvdata() | 892 | * device. If it is, probe returns zero and uses dev_set_drvdata() |
| 895 | * to associate driver-specific data with the device. If unwilling | 893 | * to associate driver-specific data with the device. If unwilling |
| @@ -924,6 +922,8 @@ extern struct bus_type usb_bus_type; | |||
| 924 | /** | 922 | /** |
| 925 | * struct usb_class_driver - identifies a USB driver that wants to use the USB major number | 923 | * struct usb_class_driver - identifies a USB driver that wants to use the USB major number |
| 926 | * @name: the usb class device name for this driver. Will show up in sysfs. | 924 | * @name: the usb class device name for this driver. Will show up in sysfs. |
| 925 | * @nodename: Callback to provide a naming hint for a possible | ||
| 926 | * device node to create. | ||
| 927 | * @fops: pointer to the struct file_operations of this driver. | 927 | * @fops: pointer to the struct file_operations of this driver. |
| 928 | * @minor_base: the start of the minor range for this driver. | 928 | * @minor_base: the start of the minor range for this driver. |
| 929 | * | 929 | * |
| @@ -1046,6 +1046,8 @@ typedef void (*usb_complete_t)(struct urb *); | |||
| 1046 | * the device driver is saying that it provided this DMA address, | 1046 | * the device driver is saying that it provided this DMA address, |
| 1047 | * which the host controller driver should use in preference to the | 1047 | * which the host controller driver should use in preference to the |
| 1048 | * transfer_buffer. | 1048 | * transfer_buffer. |
| 1049 | * @sg: scatter gather buffer list | ||
| 1050 | * @num_sgs: number of entries in the sg list | ||
| 1049 | * @transfer_buffer_length: How big is transfer_buffer. The transfer may | 1051 | * @transfer_buffer_length: How big is transfer_buffer. The transfer may |
| 1050 | * be broken up into chunks according to the current maximum packet | 1052 | * be broken up into chunks according to the current maximum packet |
| 1051 | * size for the endpoint, which is a function of the configuration | 1053 | * size for the endpoint, which is a function of the configuration |
diff --git a/include/linux/usb/langwell_otg.h b/include/linux/usb/langwell_otg.h deleted file mode 100644 index e115ae6df1da..000000000000 --- a/include/linux/usb/langwell_otg.h +++ /dev/null | |||
| @@ -1,177 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Intel Langwell USB OTG transceiver driver | ||
| 3 | * Copyright (C) 2008, Intel Corporation. | ||
| 4 | * | ||
| 5 | * This program is free software; you can redistribute it and/or modify it | ||
| 6 | * under the terms and conditions of the GNU General Public License, | ||
| 7 | * version 2, as published by the Free Software Foundation. | ||
| 8 | * | ||
| 9 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
| 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
| 11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
| 12 | * more details. | ||
| 13 | * | ||
| 14 | * You should have received a copy of the GNU General Public License along with | ||
| 15 | * this program; if not, write to the Free Software Foundation, Inc., | ||
| 16 | * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. | ||
| 17 | * | ||
| 18 | */ | ||
| 19 | |||
| 20 | #ifndef __LANGWELL_OTG_H__ | ||
| 21 | #define __LANGWELL_OTG_H__ | ||
| 22 | |||
| 23 | /* notify transceiver driver about OTG events */ | ||
| 24 | extern void langwell_update_transceiver(void); | ||
| 25 | /* HCD register bus driver */ | ||
| 26 | extern int langwell_register_host(struct pci_driver *host_driver); | ||
| 27 | /* HCD unregister bus driver */ | ||
| 28 | extern void langwell_unregister_host(struct pci_driver *host_driver); | ||
| 29 | /* DCD register bus driver */ | ||
| 30 | extern int langwell_register_peripheral(struct pci_driver *client_driver); | ||
| 31 | /* DCD unregister bus driver */ | ||
| 32 | extern void langwell_unregister_peripheral(struct pci_driver *client_driver); | ||
| 33 | /* No silent failure, output warning message */ | ||
| 34 | extern void langwell_otg_nsf_msg(unsigned long message); | ||
| 35 | |||
| 36 | #define CI_USBCMD 0x30 | ||
| 37 | # define USBCMD_RST BIT(1) | ||
| 38 | # define USBCMD_RS BIT(0) | ||
| 39 | #define CI_USBSTS 0x34 | ||
| 40 | # define USBSTS_SLI BIT(8) | ||
| 41 | # define USBSTS_URI BIT(6) | ||
| 42 | # define USBSTS_PCI BIT(2) | ||
| 43 | #define CI_PORTSC1 0x74 | ||
| 44 | # define PORTSC_PP BIT(12) | ||
| 45 | # define PORTSC_LS (BIT(11) | BIT(10)) | ||
| 46 | # define PORTSC_SUSP BIT(7) | ||
| 47 | # define PORTSC_CCS BIT(0) | ||
| 48 | #define CI_HOSTPC1 0xb4 | ||
| 49 | # define HOSTPC1_PHCD BIT(22) | ||
| 50 | #define CI_OTGSC 0xf4 | ||
| 51 | # define OTGSC_DPIE BIT(30) | ||
| 52 | # define OTGSC_1MSE BIT(29) | ||
| 53 | # define OTGSC_BSEIE BIT(28) | ||
| 54 | # define OTGSC_BSVIE BIT(27) | ||
| 55 | # define OTGSC_ASVIE BIT(26) | ||
| 56 | # define OTGSC_AVVIE BIT(25) | ||
| 57 | # define OTGSC_IDIE BIT(24) | ||
| 58 | # define OTGSC_DPIS BIT(22) | ||
| 59 | # define OTGSC_1MSS BIT(21) | ||
| 60 | # define OTGSC_BSEIS BIT(20) | ||
| 61 | # define OTGSC_BSVIS BIT(19) | ||
| 62 | # define OTGSC_ASVIS BIT(18) | ||
| 63 | # define OTGSC_AVVIS BIT(17) | ||
| 64 | # define OTGSC_IDIS BIT(16) | ||
| 65 | # define OTGSC_DPS BIT(14) | ||
| 66 | # define OTGSC_1MST BIT(13) | ||
| 67 | # define OTGSC_BSE BIT(12) | ||
| 68 | # define OTGSC_BSV BIT(11) | ||
| 69 | # define OTGSC_ASV BIT(10) | ||
| 70 | # define OTGSC_AVV BIT(9) | ||
| 71 | # define OTGSC_ID BIT(8) | ||
| 72 | # define OTGSC_HABA BIT(7) | ||
| 73 | # define OTGSC_HADP BIT(6) | ||
| 74 | # define OTGSC_IDPU BIT(5) | ||
| 75 | # define OTGSC_DP BIT(4) | ||
| 76 | # define OTGSC_OT BIT(3) | ||
| 77 | # define OTGSC_HAAR BIT(2) | ||
| 78 | # define OTGSC_VC BIT(1) | ||
| 79 | # define OTGSC_VD BIT(0) | ||
| 80 | # define OTGSC_INTEN_MASK (0x7f << 24) | ||
| 81 | # define OTGSC_INTSTS_MASK (0x7f << 16) | ||
| 82 | #define CI_USBMODE 0xf8 | ||
| 83 | # define USBMODE_CM (BIT(1) | BIT(0)) | ||
| 84 | # define USBMODE_IDLE 0 | ||
| 85 | # define USBMODE_DEVICE 0x2 | ||
| 86 | # define USBMODE_HOST 0x3 | ||
| 87 | |||
| 88 | #define INTR_DUMMY_MASK (USBSTS_SLI | USBSTS_URI | USBSTS_PCI) | ||
| 89 | |||
| 90 | struct otg_hsm { | ||
| 91 | /* Input */ | ||
| 92 | int a_bus_resume; | ||
| 93 | int a_bus_suspend; | ||
| 94 | int a_conn; | ||
| 95 | int a_sess_vld; | ||
| 96 | int a_srp_det; | ||
| 97 | int a_vbus_vld; | ||
| 98 | int b_bus_resume; | ||
| 99 | int b_bus_suspend; | ||
| 100 | int b_conn; | ||
| 101 | int b_se0_srp; | ||
| 102 | int b_sess_end; | ||
| 103 | int b_sess_vld; | ||
| 104 | int id; | ||
| 105 | |||
| 106 | /* Internal variables */ | ||
| 107 | int a_set_b_hnp_en; | ||
| 108 | int b_srp_done; | ||
| 109 | int b_hnp_enable; | ||
| 110 | |||
| 111 | /* Timeout indicator for timers */ | ||
| 112 | int a_wait_vrise_tmout; | ||
| 113 | int a_wait_bcon_tmout; | ||
| 114 | int a_aidl_bdis_tmout; | ||
| 115 | int b_ase0_brst_tmout; | ||
| 116 | int b_bus_suspend_tmout; | ||
| 117 | int b_srp_res_tmout; | ||
| 118 | |||
| 119 | /* Informative variables */ | ||
| 120 | int a_bus_drop; | ||
| 121 | int a_bus_req; | ||
| 122 | int a_clr_err; | ||
| 123 | int a_suspend_req; | ||
| 124 | int b_bus_req; | ||
| 125 | |||
| 126 | /* Output */ | ||
| 127 | int drv_vbus; | ||
| 128 | int loc_conn; | ||
| 129 | int loc_sof; | ||
| 130 | |||
| 131 | /* Others */ | ||
| 132 | int b_bus_suspend_vld; | ||
| 133 | }; | ||
| 134 | |||
| 135 | #define TA_WAIT_VRISE 100 | ||
| 136 | #define TA_WAIT_BCON 30000 | ||
| 137 | #define TA_AIDL_BDIS 15000 | ||
| 138 | #define TB_ASE0_BRST 5000 | ||
| 139 | #define TB_SE0_SRP 2 | ||
| 140 | #define TB_SRP_RES 100 | ||
| 141 | #define TB_BUS_SUSPEND 500 | ||
| 142 | |||
| 143 | struct langwell_otg_timer { | ||
| 144 | unsigned long expires; /* Number of count increase to timeout */ | ||
| 145 | unsigned long count; /* Tick counter */ | ||
| 146 | void (*function)(unsigned long); /* Timeout function */ | ||
| 147 | unsigned long data; /* Data passed to function */ | ||
| 148 | struct list_head list; | ||
| 149 | }; | ||
| 150 | |||
| 151 | struct langwell_otg { | ||
| 152 | struct otg_transceiver otg; | ||
| 153 | struct otg_hsm hsm; | ||
| 154 | void __iomem *regs; | ||
| 155 | unsigned region; | ||
| 156 | struct pci_driver *host_ops; | ||
| 157 | struct pci_driver *client_ops; | ||
| 158 | struct pci_dev *pdev; | ||
| 159 | struct work_struct work; | ||
| 160 | struct workqueue_struct *qwork; | ||
| 161 | spinlock_t lock; | ||
| 162 | spinlock_t wq_lock; | ||
| 163 | }; | ||
| 164 | |||
| 165 | static inline struct langwell_otg *otg_to_langwell(struct otg_transceiver *otg) | ||
| 166 | { | ||
| 167 | return container_of(otg, struct langwell_otg, otg); | ||
| 168 | } | ||
| 169 | |||
| 170 | #ifdef DEBUG | ||
| 171 | #define otg_dbg(fmt, args...) \ | ||
| 172 | printk(KERN_DEBUG fmt , ## args) | ||
| 173 | #else | ||
| 174 | #define otg_dbg(fmt, args...) \ | ||
| 175 | do { } while (0) | ||
| 176 | #endif /* DEBUG */ | ||
| 177 | #endif /* __LANGWELL_OTG_H__ */ | ||
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 95846d988011..74f16876f38d 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h | |||
| @@ -338,6 +338,7 @@ struct v4l2_pix_format { | |||
| 338 | /* Vendor-specific formats */ | 338 | /* Vendor-specific formats */ |
| 339 | #define V4L2_PIX_FMT_WNVA v4l2_fourcc('W', 'N', 'V', 'A') /* Winnov hw compress */ | 339 | #define V4L2_PIX_FMT_WNVA v4l2_fourcc('W', 'N', 'V', 'A') /* Winnov hw compress */ |
| 340 | #define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S', '9', '1', '0') /* SN9C10x compression */ | 340 | #define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S', '9', '1', '0') /* SN9C10x compression */ |
| 341 | #define V4L2_PIX_FMT_SN9C20X_I420 v4l2_fourcc('S', '9', '2', '0') /* SN9C20x YUV 4:2:0 */ | ||
| 341 | #define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P', 'W', 'C', '1') /* pwc older webcam */ | 342 | #define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P', 'W', 'C', '1') /* pwc older webcam */ |
| 342 | #define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P', 'W', 'C', '2') /* pwc newer webcam */ | 343 | #define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P', 'W', 'C', '2') /* pwc newer webcam */ |
| 343 | #define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E', '6', '2', '5') /* ET61X251 compression */ | 344 | #define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E', '6', '2', '5') /* ET61X251 compression */ |
diff --git a/include/linux/virtio_blk.h b/include/linux/virtio_blk.h index be7d255fc7cf..8dab9f2b8832 100644 --- a/include/linux/virtio_blk.h +++ b/include/linux/virtio_blk.h | |||
| @@ -20,8 +20,7 @@ | |||
| 20 | 20 | ||
| 21 | #define VIRTIO_BLK_ID_BYTES (sizeof(__u16[256])) /* IDENTIFY DATA */ | 21 | #define VIRTIO_BLK_ID_BYTES (sizeof(__u16[256])) /* IDENTIFY DATA */ |
| 22 | 22 | ||
| 23 | struct virtio_blk_config | 23 | struct virtio_blk_config { |
| 24 | { | ||
| 25 | /* The capacity (in 512-byte sectors). */ | 24 | /* The capacity (in 512-byte sectors). */ |
| 26 | __u64 capacity; | 25 | __u64 capacity; |
| 27 | /* The maximum segment size (if VIRTIO_BLK_F_SIZE_MAX) */ | 26 | /* The maximum segment size (if VIRTIO_BLK_F_SIZE_MAX) */ |
| @@ -50,8 +49,7 @@ struct virtio_blk_config | |||
| 50 | #define VIRTIO_BLK_T_BARRIER 0x80000000 | 49 | #define VIRTIO_BLK_T_BARRIER 0x80000000 |
| 51 | 50 | ||
| 52 | /* This is the first element of the read scatter-gather list. */ | 51 | /* This is the first element of the read scatter-gather list. */ |
| 53 | struct virtio_blk_outhdr | 52 | struct virtio_blk_outhdr { |
| 54 | { | ||
| 55 | /* VIRTIO_BLK_T* */ | 53 | /* VIRTIO_BLK_T* */ |
| 56 | __u32 type; | 54 | __u32 type; |
| 57 | /* io priority. */ | 55 | /* io priority. */ |
diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h index 99f514575f6a..e547e3c8ee9a 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h | |||
| @@ -79,8 +79,7 @@ | |||
| 79 | * the dev->feature bits if it wants. | 79 | * the dev->feature bits if it wants. |
| 80 | */ | 80 | */ |
| 81 | typedef void vq_callback_t(struct virtqueue *); | 81 | typedef void vq_callback_t(struct virtqueue *); |
| 82 | struct virtio_config_ops | 82 | struct virtio_config_ops { |
| 83 | { | ||
| 84 | void (*get)(struct virtio_device *vdev, unsigned offset, | 83 | void (*get)(struct virtio_device *vdev, unsigned offset, |
| 85 | void *buf, unsigned len); | 84 | void *buf, unsigned len); |
| 86 | void (*set)(struct virtio_device *vdev, unsigned offset, | 85 | void (*set)(struct virtio_device *vdev, unsigned offset, |
diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h index cec79adbe3ea..d8dd539c9f48 100644 --- a/include/linux/virtio_net.h +++ b/include/linux/virtio_net.h | |||
| @@ -27,11 +27,11 @@ | |||
| 27 | #define VIRTIO_NET_F_CTRL_VQ 17 /* Control channel available */ | 27 | #define VIRTIO_NET_F_CTRL_VQ 17 /* Control channel available */ |
| 28 | #define VIRTIO_NET_F_CTRL_RX 18 /* Control channel RX mode support */ | 28 | #define VIRTIO_NET_F_CTRL_RX 18 /* Control channel RX mode support */ |
| 29 | #define VIRTIO_NET_F_CTRL_VLAN 19 /* Control channel VLAN filtering */ | 29 | #define VIRTIO_NET_F_CTRL_VLAN 19 /* Control channel VLAN filtering */ |
| 30 | #define VIRTIO_NET_F_CTRL_RX_EXTRA 20 /* Extra RX mode control support */ | ||
| 30 | 31 | ||
| 31 | #define VIRTIO_NET_S_LINK_UP 1 /* Link is up */ | 32 | #define VIRTIO_NET_S_LINK_UP 1 /* Link is up */ |
| 32 | 33 | ||
| 33 | struct virtio_net_config | 34 | struct virtio_net_config { |
| 34 | { | ||
| 35 | /* The config defining mac address (if VIRTIO_NET_F_MAC) */ | 35 | /* The config defining mac address (if VIRTIO_NET_F_MAC) */ |
| 36 | __u8 mac[6]; | 36 | __u8 mac[6]; |
| 37 | /* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */ | 37 | /* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */ |
| @@ -40,8 +40,7 @@ struct virtio_net_config | |||
| 40 | 40 | ||
| 41 | /* This is the first element of the scatter-gather list. If you don't | 41 | /* This is the first element of the scatter-gather list. If you don't |
| 42 | * specify GSO or CSUM features, you can simply ignore the header. */ | 42 | * specify GSO or CSUM features, you can simply ignore the header. */ |
| 43 | struct virtio_net_hdr | 43 | struct virtio_net_hdr { |
| 44 | { | ||
| 45 | #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 // Use csum_start, csum_offset | 44 | #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 // Use csum_start, csum_offset |
| 46 | __u8 flags; | 45 | __u8 flags; |
| 47 | #define VIRTIO_NET_HDR_GSO_NONE 0 // Not a GSO frame | 46 | #define VIRTIO_NET_HDR_GSO_NONE 0 // Not a GSO frame |
| @@ -81,14 +80,19 @@ typedef __u8 virtio_net_ctrl_ack; | |||
| 81 | #define VIRTIO_NET_ERR 1 | 80 | #define VIRTIO_NET_ERR 1 |
| 82 | 81 | ||
| 83 | /* | 82 | /* |
| 84 | * Control the RX mode, ie. promisucous and allmulti. PROMISC and | 83 | * Control the RX mode, ie. promisucous, allmulti, etc... |
| 85 | * ALLMULTI commands require an "out" sg entry containing a 1 byte | 84 | * All commands require an "out" sg entry containing a 1 byte |
| 86 | * state value, zero = disable, non-zero = enable. These commands | 85 | * state value, zero = disable, non-zero = enable. Commands |
| 87 | * are supported with the VIRTIO_NET_F_CTRL_RX feature. | 86 | * 0 and 1 are supported with the VIRTIO_NET_F_CTRL_RX feature. |
| 87 | * Commands 2-5 are added with VIRTIO_NET_F_CTRL_RX_EXTRA. | ||
| 88 | */ | 88 | */ |
| 89 | #define VIRTIO_NET_CTRL_RX 0 | 89 | #define VIRTIO_NET_CTRL_RX 0 |
| 90 | #define VIRTIO_NET_CTRL_RX_PROMISC 0 | 90 | #define VIRTIO_NET_CTRL_RX_PROMISC 0 |
| 91 | #define VIRTIO_NET_CTRL_RX_ALLMULTI 1 | 91 | #define VIRTIO_NET_CTRL_RX_ALLMULTI 1 |
| 92 | #define VIRTIO_NET_CTRL_RX_ALLUNI 2 | ||
| 93 | #define VIRTIO_NET_CTRL_RX_NOMULTI 3 | ||
| 94 | #define VIRTIO_NET_CTRL_RX_NOUNI 4 | ||
| 95 | #define VIRTIO_NET_CTRL_RX_NOBCAST 5 | ||
| 92 | 96 | ||
| 93 | /* | 97 | /* |
| 94 | * Control the MAC filter table. | 98 | * Control the MAC filter table. |
diff --git a/include/linux/virtio_ring.h b/include/linux/virtio_ring.h index 693e0ec5afa6..e4d144b132b5 100644 --- a/include/linux/virtio_ring.h +++ b/include/linux/virtio_ring.h | |||
| @@ -30,8 +30,7 @@ | |||
| 30 | #define VIRTIO_RING_F_INDIRECT_DESC 28 | 30 | #define VIRTIO_RING_F_INDIRECT_DESC 28 |
| 31 | 31 | ||
| 32 | /* Virtio ring descriptors: 16 bytes. These can chain together via "next". */ | 32 | /* Virtio ring descriptors: 16 bytes. These can chain together via "next". */ |
| 33 | struct vring_desc | 33 | struct vring_desc { |
| 34 | { | ||
| 35 | /* Address (guest-physical). */ | 34 | /* Address (guest-physical). */ |
| 36 | __u64 addr; | 35 | __u64 addr; |
| 37 | /* Length. */ | 36 | /* Length. */ |
| @@ -42,24 +41,21 @@ struct vring_desc | |||
| 42 | __u16 next; | 41 | __u16 next; |
| 43 | }; | 42 | }; |
| 44 | 43 | ||
| 45 | struct vring_avail | 44 | struct vring_avail { |
| 46 | { | ||
| 47 | __u16 flags; | 45 | __u16 flags; |
| 48 | __u16 idx; | 46 | __u16 idx; |
| 49 | __u16 ring[]; | 47 | __u16 ring[]; |
| 50 | }; | 48 | }; |
| 51 | 49 | ||
| 52 | /* u32 is used here for ids for padding reasons. */ | 50 | /* u32 is used here for ids for padding reasons. */ |
| 53 | struct vring_used_elem | 51 | struct vring_used_elem { |
| 54 | { | ||
| 55 | /* Index of start of used descriptor chain. */ | 52 | /* Index of start of used descriptor chain. */ |
| 56 | __u32 id; | 53 | __u32 id; |
| 57 | /* Total length of the descriptor chain which was used (written to) */ | 54 | /* Total length of the descriptor chain which was used (written to) */ |
| 58 | __u32 len; | 55 | __u32 len; |
| 59 | }; | 56 | }; |
| 60 | 57 | ||
| 61 | struct vring_used | 58 | struct vring_used { |
| 62 | { | ||
| 63 | __u16 flags; | 59 | __u16 flags; |
| 64 | __u16 idx; | 60 | __u16 idx; |
| 65 | struct vring_used_elem ring[]; | 61 | struct vring_used_elem ring[]; |
