diff options
| author | Adrian Bunk <bunk@r063144.stusta.swh.mhn.de> | 2006-03-20 12:30:36 -0500 |
|---|---|---|
| committer | Adrian Bunk <bunk@r063144.stusta.swh.mhn.de> | 2006-03-20 12:30:36 -0500 |
| commit | 0f76ee451484d02c7405d92e7bceb39b415abb01 (patch) | |
| tree | 9722f84281f786ba48971dde057f5171a49969e4 /include/linux | |
| parent | 01d206a7c1167639f6ca6dac22140fbdca017558 (diff) | |
| parent | 7705a8792b0fc82fd7d4dd923724606bbfd9fb20 (diff) | |
Merge with git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'include/linux')
60 files changed, 261 insertions, 112 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 84d3d9f034ce..d3bc25e6d27d 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
| @@ -427,7 +427,8 @@ extern int acpi_mp_config; | |||
| 427 | extern struct acpi_table_mcfg_config *pci_mmcfg_config; | 427 | extern struct acpi_table_mcfg_config *pci_mmcfg_config; |
| 428 | extern int pci_mmcfg_config_num; | 428 | extern int pci_mmcfg_config_num; |
| 429 | 429 | ||
| 430 | extern int sbf_port ; | 430 | extern int sbf_port; |
| 431 | extern unsigned long acpi_video_flags; | ||
| 431 | 432 | ||
| 432 | #else /* !CONFIG_ACPI */ | 433 | #else /* !CONFIG_ACPI */ |
| 433 | 434 | ||
diff --git a/include/linux/compat.h b/include/linux/compat.h index f9ca534787e2..c9ab2a26348c 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
| @@ -161,5 +161,25 @@ int copy_siginfo_to_user32(struct compat_siginfo __user *to, siginfo_t *from); | |||
| 161 | int get_compat_sigevent(struct sigevent *event, | 161 | int get_compat_sigevent(struct sigevent *event, |
| 162 | const struct compat_sigevent __user *u_event); | 162 | const struct compat_sigevent __user *u_event); |
| 163 | 163 | ||
| 164 | static inline int compat_timeval_compare(struct compat_timeval *lhs, | ||
| 165 | struct compat_timeval *rhs) | ||
| 166 | { | ||
| 167 | if (lhs->tv_sec < rhs->tv_sec) | ||
| 168 | return -1; | ||
| 169 | if (lhs->tv_sec > rhs->tv_sec) | ||
| 170 | return 1; | ||
| 171 | return lhs->tv_usec - rhs->tv_usec; | ||
| 172 | } | ||
| 173 | |||
| 174 | static inline int compat_timespec_compare(struct compat_timespec *lhs, | ||
| 175 | struct compat_timespec *rhs) | ||
| 176 | { | ||
| 177 | if (lhs->tv_sec < rhs->tv_sec) | ||
| 178 | return -1; | ||
| 179 | if (lhs->tv_sec > rhs->tv_sec) | ||
| 180 | return 1; | ||
| 181 | return lhs->tv_nsec - rhs->tv_nsec; | ||
| 182 | } | ||
| 183 | |||
| 164 | #endif /* CONFIG_COMPAT */ | 184 | #endif /* CONFIG_COMPAT */ |
| 165 | #endif /* _LINUX_COMPAT_H */ | 185 | #endif /* _LINUX_COMPAT_H */ |
diff --git a/include/linux/compat_ioctl.h b/include/linux/compat_ioctl.h index 8fad50f8e389..ae7dfb790df3 100644 --- a/include/linux/compat_ioctl.h +++ b/include/linux/compat_ioctl.h | |||
| @@ -696,6 +696,8 @@ COMPATIBLE_IOCTL(MEMLOCK) | |||
| 696 | COMPATIBLE_IOCTL(MEMUNLOCK) | 696 | COMPATIBLE_IOCTL(MEMUNLOCK) |
| 697 | COMPATIBLE_IOCTL(MEMGETREGIONCOUNT) | 697 | COMPATIBLE_IOCTL(MEMGETREGIONCOUNT) |
| 698 | COMPATIBLE_IOCTL(MEMGETREGIONINFO) | 698 | COMPATIBLE_IOCTL(MEMGETREGIONINFO) |
| 699 | COMPATIBLE_IOCTL(MEMGETBADBLOCK) | ||
| 700 | COMPATIBLE_IOCTL(MEMSETBADBLOCK) | ||
| 699 | /* NBD */ | 701 | /* NBD */ |
| 700 | ULONG_IOCTL(NBD_SET_SOCK) | 702 | ULONG_IOCTL(NBD_SET_SOCK) |
| 701 | ULONG_IOCTL(NBD_SET_BLKSIZE) | 703 | ULONG_IOCTL(NBD_SET_BLKSIZE) |
diff --git a/include/linux/configfs.h b/include/linux/configfs.h index acffb8c9073a..a7f015027535 100644 --- a/include/linux/configfs.h +++ b/include/linux/configfs.h | |||
| @@ -126,7 +126,7 @@ extern struct config_item *config_group_find_obj(struct config_group *, const ch | |||
| 126 | 126 | ||
| 127 | 127 | ||
| 128 | struct configfs_attribute { | 128 | struct configfs_attribute { |
| 129 | char *ca_name; | 129 | const char *ca_name; |
| 130 | struct module *ca_owner; | 130 | struct module *ca_owner; |
| 131 | mode_t ca_mode; | 131 | mode_t ca_mode; |
| 132 | }; | 132 | }; |
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index 13e9f4a3ab26..60e56c6e03dd 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h | |||
| @@ -84,7 +84,6 @@ | |||
| 84 | #include <linux/kernel.h> | 84 | #include <linux/kernel.h> |
| 85 | #include <linux/threads.h> | 85 | #include <linux/threads.h> |
| 86 | #include <linux/bitmap.h> | 86 | #include <linux/bitmap.h> |
| 87 | #include <asm/bug.h> | ||
| 88 | 87 | ||
| 89 | typedef struct { DECLARE_BITMAP(bits, NR_CPUS); } cpumask_t; | 88 | typedef struct { DECLARE_BITMAP(bits, NR_CPUS); } cpumask_t; |
| 90 | extern cpumask_t _unused_cpumask_arg_; | 89 | extern cpumask_t _unused_cpumask_arg_; |
| @@ -329,7 +328,7 @@ static inline void __cpus_remap(cpumask_t *dstp, const cpumask_t *srcp, | |||
| 329 | * bitmap of size NR_CPUS. | 328 | * bitmap of size NR_CPUS. |
| 330 | * | 329 | * |
| 331 | * #ifdef CONFIG_HOTPLUG_CPU | 330 | * #ifdef CONFIG_HOTPLUG_CPU |
| 332 | * cpu_possible_map - all NR_CPUS bits set | 331 | * cpu_possible_map - has bit 'cpu' set iff cpu is populatable |
| 333 | * cpu_present_map - has bit 'cpu' set iff cpu is populated | 332 | * cpu_present_map - has bit 'cpu' set iff cpu is populated |
| 334 | * cpu_online_map - has bit 'cpu' set iff cpu available to scheduler | 333 | * cpu_online_map - has bit 'cpu' set iff cpu available to scheduler |
| 335 | * #else | 334 | * #else |
diff --git a/include/linux/dcache.h b/include/linux/dcache.h index a3f09947940e..4361f3789975 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h | |||
| @@ -8,7 +8,6 @@ | |||
| 8 | #include <linux/spinlock.h> | 8 | #include <linux/spinlock.h> |
| 9 | #include <linux/cache.h> | 9 | #include <linux/cache.h> |
| 10 | #include <linux/rcupdate.h> | 10 | #include <linux/rcupdate.h> |
| 11 | #include <asm/bug.h> | ||
| 12 | 11 | ||
| 13 | struct nameidata; | 12 | struct nameidata; |
| 14 | struct vfsmount; | 13 | struct vfsmount; |
diff --git a/include/linux/dvb/video.h b/include/linux/dvb/video.h index b1999bfeaa56..b81e58b2ebf8 100644 --- a/include/linux/dvb/video.h +++ b/include/linux/dvb/video.h | |||
| @@ -135,7 +135,7 @@ typedef struct video_spu { | |||
| 135 | 135 | ||
| 136 | typedef struct video_spu_palette { /* SPU Palette information */ | 136 | typedef struct video_spu_palette { /* SPU Palette information */ |
| 137 | int length; | 137 | int length; |
| 138 | uint8_t *palette; | 138 | uint8_t __user *palette; |
| 139 | } video_spu_palette_t; | 139 | } video_spu_palette_t; |
| 140 | 140 | ||
| 141 | 141 | ||
diff --git a/include/linux/elevator.h b/include/linux/elevator.h index 23fe746a1d51..18cf1f3e1184 100644 --- a/include/linux/elevator.h +++ b/include/linux/elevator.h | |||
| @@ -82,6 +82,7 @@ struct elevator_queue | |||
| 82 | extern void elv_dispatch_sort(request_queue_t *, struct request *); | 82 | extern void elv_dispatch_sort(request_queue_t *, struct request *); |
| 83 | extern void elv_add_request(request_queue_t *, struct request *, int, int); | 83 | extern void elv_add_request(request_queue_t *, struct request *, int, int); |
| 84 | extern void __elv_add_request(request_queue_t *, struct request *, int, int); | 84 | extern void __elv_add_request(request_queue_t *, struct request *, int, int); |
| 85 | extern void elv_insert(request_queue_t *, struct request *, int); | ||
| 85 | extern int elv_merge(request_queue_t *, struct request **, struct bio *); | 86 | extern int elv_merge(request_queue_t *, struct request **, struct bio *); |
| 86 | extern void elv_merge_requests(request_queue_t *, struct request *, | 87 | extern void elv_merge_requests(request_queue_t *, struct request *, |
| 87 | struct request *); | 88 | struct request *); |
diff --git a/include/linux/file.h b/include/linux/file.h index 418b6101b59a..9901b850f2e4 100644 --- a/include/linux/file.h +++ b/include/linux/file.h | |||
| @@ -60,8 +60,6 @@ extern void put_filp(struct file *); | |||
| 60 | extern int get_unused_fd(void); | 60 | extern int get_unused_fd(void); |
| 61 | extern void FASTCALL(put_unused_fd(unsigned int fd)); | 61 | extern void FASTCALL(put_unused_fd(unsigned int fd)); |
| 62 | struct kmem_cache; | 62 | struct kmem_cache; |
| 63 | extern void filp_ctor(void * objp, struct kmem_cache *cachep, unsigned long cflags); | ||
| 64 | extern void filp_dtor(void * objp, struct kmem_cache *cachep, unsigned long dflags); | ||
| 65 | 63 | ||
| 66 | extern struct file ** alloc_fd_array(int); | 64 | extern struct file ** alloc_fd_array(int); |
| 67 | extern void free_fd_array(struct file **, int); | 65 | extern void free_fd_array(struct file **, int); |
diff --git a/include/linux/fs.h b/include/linux/fs.h index e059da947007..128d0082522c 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -35,6 +35,7 @@ struct files_stat_struct { | |||
| 35 | int max_files; /* tunable */ | 35 | int max_files; /* tunable */ |
| 36 | }; | 36 | }; |
| 37 | extern struct files_stat_struct files_stat; | 37 | extern struct files_stat_struct files_stat; |
| 38 | extern int get_max_files(void); | ||
| 38 | 39 | ||
| 39 | struct inodes_stat_t { | 40 | struct inodes_stat_t { |
| 40 | int nr_inodes; | 41 | int nr_inodes; |
| @@ -1418,9 +1419,6 @@ extern int is_bad_inode(struct inode *); | |||
| 1418 | extern struct file_operations read_fifo_fops; | 1419 | extern struct file_operations read_fifo_fops; |
| 1419 | extern struct file_operations write_fifo_fops; | 1420 | extern struct file_operations write_fifo_fops; |
| 1420 | extern struct file_operations rdwr_fifo_fops; | 1421 | extern struct file_operations rdwr_fifo_fops; |
| 1421 | extern struct file_operations read_pipe_fops; | ||
| 1422 | extern struct file_operations write_pipe_fops; | ||
| 1423 | extern struct file_operations rdwr_pipe_fops; | ||
| 1424 | 1422 | ||
| 1425 | extern int fs_may_remount_ro(struct super_block *); | 1423 | extern int fs_may_remount_ro(struct super_block *); |
| 1426 | 1424 | ||
| @@ -1666,6 +1664,8 @@ extern int vfs_follow_link(struct nameidata *, const char *); | |||
| 1666 | extern int page_readlink(struct dentry *, char __user *, int); | 1664 | extern int page_readlink(struct dentry *, char __user *, int); |
| 1667 | extern void *page_follow_link_light(struct dentry *, struct nameidata *); | 1665 | extern void *page_follow_link_light(struct dentry *, struct nameidata *); |
| 1668 | extern void page_put_link(struct dentry *, struct nameidata *, void *); | 1666 | extern void page_put_link(struct dentry *, struct nameidata *, void *); |
| 1667 | extern int __page_symlink(struct inode *inode, const char *symname, int len, | ||
| 1668 | gfp_t gfp_mask); | ||
| 1669 | extern int page_symlink(struct inode *inode, const char *symname, int len); | 1669 | extern int page_symlink(struct inode *inode, const char *symname, int len); |
| 1670 | extern struct inode_operations page_symlink_inode_operations; | 1670 | extern struct inode_operations page_symlink_inode_operations; |
| 1671 | extern int generic_readlink(struct dentry *, char __user *, int); | 1671 | extern int generic_readlink(struct dentry *, char __user *, int); |
diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 20f9148e38d9..7851e6b520cf 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h | |||
| @@ -157,9 +157,9 @@ extern void FASTCALL(free_cold_page(struct page *page)); | |||
| 157 | 157 | ||
| 158 | void page_alloc_init(void); | 158 | void page_alloc_init(void); |
| 159 | #ifdef CONFIG_NUMA | 159 | #ifdef CONFIG_NUMA |
| 160 | void drain_remote_pages(void); | 160 | void drain_node_pages(int node); |
| 161 | #else | 161 | #else |
| 162 | static inline void drain_remote_pages(void) { }; | 162 | static inline void drain_node_pages(int node) { }; |
| 163 | #endif | 163 | #endif |
| 164 | 164 | ||
| 165 | #endif /* __LINUX_GFP_H */ | 165 | #endif /* __LINUX_GFP_H */ |
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 6361544bb6ae..6401c31d6add 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h | |||
| @@ -116,6 +116,10 @@ extern int hrtimer_try_to_cancel(struct hrtimer *timer); | |||
| 116 | extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer); | 116 | extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer); |
| 117 | extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp); | 117 | extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp); |
| 118 | 118 | ||
| 119 | #ifdef CONFIG_NO_IDLE_HZ | ||
| 120 | extern ktime_t hrtimer_get_next_event(void); | ||
| 121 | #endif | ||
| 122 | |||
| 119 | static inline int hrtimer_active(const struct hrtimer *timer) | 123 | static inline int hrtimer_active(const struct hrtimer *timer) |
| 120 | { | 124 | { |
| 121 | return timer->state == HRTIMER_PENDING; | 125 | return timer->state == HRTIMER_PENDING; |
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 7863a59bd598..63f1d63cc1d8 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
| @@ -100,6 +100,9 @@ extern s32 i2c_smbus_write_block_data(struct i2c_client * client, | |||
| 100 | /* Returns the number of read bytes */ | 100 | /* Returns the number of read bytes */ |
| 101 | extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client, | 101 | extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client, |
| 102 | u8 command, u8 *values); | 102 | u8 command, u8 *values); |
| 103 | extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client, | ||
| 104 | u8 command, u8 length, | ||
| 105 | u8 *values); | ||
| 103 | 106 | ||
| 104 | /* | 107 | /* |
| 105 | * A driver is capable of handling one or more physical devices present on | 108 | * A driver is capable of handling one or more physical devices present on |
diff --git a/include/linux/ioc3.h b/include/linux/ioc3.h index e7906a72a4f1..da7c09e4ede6 100644 --- a/include/linux/ioc3.h +++ b/include/linux/ioc3.h | |||
| @@ -27,7 +27,7 @@ struct ioc3_driver_data { | |||
| 27 | int id; /* IOC3 sequence number */ | 27 | int id; /* IOC3 sequence number */ |
| 28 | /* PCI mapping */ | 28 | /* PCI mapping */ |
| 29 | unsigned long pma; /* physical address */ | 29 | unsigned long pma; /* physical address */ |
| 30 | struct __iomem ioc3 *vma; /* pointer to registers */ | 30 | struct ioc3 __iomem *vma; /* pointer to registers */ |
| 31 | struct pci_dev *pdev; /* PCI device */ | 31 | struct pci_dev *pdev; /* PCI device */ |
| 32 | /* IRQ stuff */ | 32 | /* IRQ stuff */ |
| 33 | int dual_irq; /* set if separate IRQs are used */ | 33 | int dual_irq; /* set if separate IRQs are used */ |
diff --git a/include/linux/jbd.h b/include/linux/jbd.h index 558cb4c26ec9..41ee79962bb2 100644 --- a/include/linux/jbd.h +++ b/include/linux/jbd.h | |||
| @@ -23,6 +23,7 @@ | |||
| 23 | #define jfs_debug jbd_debug | 23 | #define jfs_debug jbd_debug |
| 24 | #else | 24 | #else |
| 25 | 25 | ||
| 26 | #include <linux/types.h> | ||
| 26 | #include <linux/buffer_head.h> | 27 | #include <linux/buffer_head.h> |
| 27 | #include <linux/journal-head.h> | 28 | #include <linux/journal-head.h> |
| 28 | #include <linux/stddef.h> | 29 | #include <linux/stddef.h> |
| @@ -238,7 +239,6 @@ typedef struct journal_superblock_s | |||
| 238 | 239 | ||
| 239 | #include <linux/fs.h> | 240 | #include <linux/fs.h> |
| 240 | #include <linux/sched.h> | 241 | #include <linux/sched.h> |
| 241 | #include <asm/bug.h> | ||
| 242 | 242 | ||
| 243 | #define JBD_ASSERTIONS | 243 | #define JBD_ASSERTIONS |
| 244 | #ifdef JBD_ASSERTIONS | 244 | #ifdef JBD_ASSERTIONS |
| @@ -498,12 +498,6 @@ struct transaction_s | |||
| 498 | struct journal_head *t_checkpoint_list; | 498 | struct journal_head *t_checkpoint_list; |
| 499 | 499 | ||
| 500 | /* | 500 | /* |
| 501 | * Doubly-linked circular list of all buffers submitted for IO while | ||
| 502 | * checkpointing. [j_list_lock] | ||
| 503 | */ | ||
| 504 | struct journal_head *t_checkpoint_io_list; | ||
| 505 | |||
| 506 | /* | ||
| 507 | * Doubly-linked circular list of temporary buffers currently undergoing | 501 | * Doubly-linked circular list of temporary buffers currently undergoing |
| 508 | * IO in the log [j_list_lock] | 502 | * IO in the log [j_list_lock] |
| 509 | */ | 503 | */ |
| @@ -618,6 +612,7 @@ struct transaction_s | |||
| 618 | * @j_wbuf: array of buffer_heads for journal_commit_transaction | 612 | * @j_wbuf: array of buffer_heads for journal_commit_transaction |
| 619 | * @j_wbufsize: maximum number of buffer_heads allowed in j_wbuf, the | 613 | * @j_wbufsize: maximum number of buffer_heads allowed in j_wbuf, the |
| 620 | * number that will fit in j_blocksize | 614 | * number that will fit in j_blocksize |
| 615 | * @j_last_sync_writer: most recent pid which did a synchronous write | ||
| 621 | * @j_private: An opaque pointer to fs-private information. | 616 | * @j_private: An opaque pointer to fs-private information. |
| 622 | */ | 617 | */ |
| 623 | 618 | ||
| @@ -807,6 +802,8 @@ struct journal_s | |||
| 807 | struct buffer_head **j_wbuf; | 802 | struct buffer_head **j_wbuf; |
| 808 | int j_wbufsize; | 803 | int j_wbufsize; |
| 809 | 804 | ||
| 805 | pid_t j_last_sync_writer; | ||
| 806 | |||
| 810 | /* | 807 | /* |
| 811 | * An opaque pointer to fs-private information. ext3 puts its | 808 | * An opaque pointer to fs-private information. ext3 puts its |
| 812 | * superblock pointer here | 809 | * superblock pointer here |
| @@ -849,7 +846,7 @@ extern void journal_commit_transaction(journal_t *); | |||
| 849 | 846 | ||
| 850 | /* Checkpoint list management */ | 847 | /* Checkpoint list management */ |
| 851 | int __journal_clean_checkpoint_list(journal_t *journal); | 848 | int __journal_clean_checkpoint_list(journal_t *journal); |
| 852 | int __journal_remove_checkpoint(struct journal_head *); | 849 | void __journal_remove_checkpoint(struct journal_head *); |
| 853 | void __journal_insert_checkpoint(struct journal_head *, transaction_t *); | 850 | void __journal_insert_checkpoint(struct journal_head *, transaction_t *); |
| 854 | 851 | ||
| 855 | /* Buffer IO */ | 852 | /* Buffer IO */ |
diff --git a/include/linux/kbd_kern.h b/include/linux/kbd_kern.h index 3aed37314ab8..e87c32a5c86a 100644 --- a/include/linux/kbd_kern.h +++ b/include/linux/kbd_kern.h | |||
| @@ -153,8 +153,10 @@ static inline void con_schedule_flip(struct tty_struct *t) | |||
| 153 | { | 153 | { |
| 154 | unsigned long flags; | 154 | unsigned long flags; |
| 155 | spin_lock_irqsave(&t->buf.lock, flags); | 155 | spin_lock_irqsave(&t->buf.lock, flags); |
| 156 | if (t->buf.tail != NULL) | 156 | if (t->buf.tail != NULL) { |
| 157 | t->buf.tail->active = 0; | 157 | t->buf.tail->active = 0; |
| 158 | t->buf.tail->commit = t->buf.tail->used; | ||
| 159 | } | ||
| 158 | spin_unlock_irqrestore(&t->buf.lock, flags); | 160 | spin_unlock_irqrestore(&t->buf.lock, flags); |
| 159 | schedule_work(&t->buf.work); | 161 | schedule_work(&t->buf.work); |
| 160 | } | 162 | } |
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index b49affa0ac5a..3b507bf05d09 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
| @@ -326,12 +326,6 @@ struct sysinfo { | |||
| 326 | /* Force a compilation error if condition is true */ | 326 | /* Force a compilation error if condition is true */ |
| 327 | #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) | 327 | #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) |
| 328 | 328 | ||
| 329 | #ifdef CONFIG_SYSCTL | ||
| 330 | extern int randomize_va_space; | ||
| 331 | #else | ||
| 332 | #define randomize_va_space 1 | ||
| 333 | #endif | ||
| 334 | |||
| 335 | /* Trap pasters of __FUNCTION__ at compile-time */ | 329 | /* Trap pasters of __FUNCTION__ at compile-time */ |
| 336 | #define __FUNCTION__ (__func__) | 330 | #define __FUNCTION__ (__func__) |
| 337 | 331 | ||
diff --git a/include/linux/kexec.h b/include/linux/kexec.h index a311f58c8a7c..cfb3410e32b1 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | #include <linux/list.h> | 6 | #include <linux/list.h> |
| 7 | #include <linux/linkage.h> | 7 | #include <linux/linkage.h> |
| 8 | #include <linux/compat.h> | 8 | #include <linux/compat.h> |
| 9 | #include <linux/ioport.h> | ||
| 9 | #include <asm/kexec.h> | 10 | #include <asm/kexec.h> |
| 10 | 11 | ||
| 11 | /* Verify architecture specific macros are defined */ | 12 | /* Verify architecture specific macros are defined */ |
diff --git a/include/linux/kmalloc_sizes.h b/include/linux/kmalloc_sizes.h index d82d4c05c12d..bda23e00ed71 100644 --- a/include/linux/kmalloc_sizes.h +++ b/include/linux/kmalloc_sizes.h | |||
| @@ -19,8 +19,10 @@ | |||
| 19 | CACHE(32768) | 19 | CACHE(32768) |
| 20 | CACHE(65536) | 20 | CACHE(65536) |
| 21 | CACHE(131072) | 21 | CACHE(131072) |
| 22 | #ifndef CONFIG_MMU | 22 | #if (NR_CPUS > 512) || (MAX_NUMNODES > 256) || !defined(CONFIG_MMU) |
| 23 | CACHE(262144) | 23 | CACHE(262144) |
| 24 | #endif | ||
| 25 | #ifndef CONFIG_MMU | ||
| 24 | CACHE(524288) | 26 | CACHE(524288) |
| 25 | CACHE(1048576) | 27 | CACHE(1048576) |
| 26 | #ifdef CONFIG_LARGE_ALLOCS | 28 | #ifdef CONFIG_LARGE_ALLOCS |
diff --git a/include/linux/kobject.h b/include/linux/kobject.h index 2a8d8da70961..c374b5fa8d3b 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h | |||
| @@ -41,8 +41,10 @@ enum kobject_action { | |||
| 41 | KOBJ_ADD = (__force kobject_action_t) 0x01, /* exclusive to core */ | 41 | KOBJ_ADD = (__force kobject_action_t) 0x01, /* exclusive to core */ |
| 42 | KOBJ_REMOVE = (__force kobject_action_t) 0x02, /* exclusive to core */ | 42 | KOBJ_REMOVE = (__force kobject_action_t) 0x02, /* exclusive to core */ |
| 43 | KOBJ_CHANGE = (__force kobject_action_t) 0x03, /* device state change */ | 43 | KOBJ_CHANGE = (__force kobject_action_t) 0x03, /* device state change */ |
| 44 | KOBJ_OFFLINE = (__force kobject_action_t) 0x04, /* device offline */ | 44 | KOBJ_MOUNT = (__force kobject_action_t) 0x04, /* mount event for block devices (broken) */ |
| 45 | KOBJ_ONLINE = (__force kobject_action_t) 0x05, /* device online */ | 45 | KOBJ_UMOUNT = (__force kobject_action_t) 0x05, /* umount event for block devices (broken) */ |
| 46 | KOBJ_OFFLINE = (__force kobject_action_t) 0x06, /* device offline */ | ||
| 47 | KOBJ_ONLINE = (__force kobject_action_t) 0x07, /* device online */ | ||
| 46 | }; | 48 | }; |
| 47 | 49 | ||
| 48 | struct kobject { | 50 | struct kobject { |
diff --git a/include/linux/ktime.h b/include/linux/ktime.h index 6aca67a569a2..f3dec45ef874 100644 --- a/include/linux/ktime.h +++ b/include/linux/ktime.h | |||
| @@ -96,10 +96,16 @@ static inline ktime_t ktime_set(const long secs, const unsigned long nsecs) | |||
| 96 | ({ (ktime_t){ .tv64 = (kt).tv64 + (nsval) }; }) | 96 | ({ (ktime_t){ .tv64 = (kt).tv64 + (nsval) }; }) |
| 97 | 97 | ||
| 98 | /* convert a timespec to ktime_t format: */ | 98 | /* convert a timespec to ktime_t format: */ |
| 99 | #define timespec_to_ktime(ts) ktime_set((ts).tv_sec, (ts).tv_nsec) | 99 | static inline ktime_t timespec_to_ktime(struct timespec ts) |
| 100 | { | ||
| 101 | return ktime_set(ts.tv_sec, ts.tv_nsec); | ||
| 102 | } | ||
| 100 | 103 | ||
| 101 | /* convert a timeval to ktime_t format: */ | 104 | /* convert a timeval to ktime_t format: */ |
| 102 | #define timeval_to_ktime(tv) ktime_set((tv).tv_sec, (tv).tv_usec * 1000) | 105 | static inline ktime_t timeval_to_ktime(struct timeval tv) |
| 106 | { | ||
| 107 | return ktime_set(tv.tv_sec, tv.tv_usec * NSEC_PER_USEC); | ||
| 108 | } | ||
| 103 | 109 | ||
| 104 | /* Map the ktime_t to timespec conversion to ns_to_timespec function */ | 110 | /* Map the ktime_t to timespec conversion to ns_to_timespec function */ |
| 105 | #define ktime_to_timespec(kt) ns_to_timespec((kt).tv64) | 111 | #define ktime_to_timespec(kt) ns_to_timespec((kt).tv64) |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 9e5db2949c58..c91be5e64ede 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -557,17 +557,29 @@ ata_sg_is_last(struct scatterlist *sg, struct ata_queued_cmd *qc) | |||
| 557 | } | 557 | } |
| 558 | 558 | ||
| 559 | static inline struct scatterlist * | 559 | static inline struct scatterlist * |
| 560 | ata_qc_first_sg(struct ata_queued_cmd *qc) | ||
| 561 | { | ||
| 562 | if (qc->n_elem) | ||
| 563 | return qc->__sg; | ||
| 564 | if (qc->pad_len) | ||
| 565 | return &qc->pad_sgent; | ||
| 566 | return NULL; | ||
| 567 | } | ||
| 568 | |||
| 569 | static inline struct scatterlist * | ||
| 560 | ata_qc_next_sg(struct scatterlist *sg, struct ata_queued_cmd *qc) | 570 | ata_qc_next_sg(struct scatterlist *sg, struct ata_queued_cmd *qc) |
| 561 | { | 571 | { |
| 562 | if (sg == &qc->pad_sgent) | 572 | if (sg == &qc->pad_sgent) |
| 563 | return NULL; | 573 | return NULL; |
| 564 | if (++sg - qc->__sg < qc->n_elem) | 574 | if (++sg - qc->__sg < qc->n_elem) |
| 565 | return sg; | 575 | return sg; |
| 566 | return qc->pad_len ? &qc->pad_sgent : NULL; | 576 | if (qc->pad_len) |
| 577 | return &qc->pad_sgent; | ||
| 578 | return NULL; | ||
| 567 | } | 579 | } |
| 568 | 580 | ||
| 569 | #define ata_for_each_sg(sg, qc) \ | 581 | #define ata_for_each_sg(sg, qc) \ |
| 570 | for (sg = qc->__sg; sg; sg = ata_qc_next_sg(sg, qc)) | 582 | for (sg = ata_qc_first_sg(qc); sg; sg = ata_qc_next_sg(sg, qc)) |
| 571 | 583 | ||
| 572 | static inline unsigned int ata_tag_valid(unsigned int tag) | 584 | static inline unsigned int ata_tag_valid(unsigned int tag) |
| 573 | { | 585 | { |
diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h index 920766cea79c..ef21ed296039 100644 --- a/include/linux/lockd/lockd.h +++ b/include/linux/lockd/lockd.h | |||
| @@ -149,7 +149,7 @@ struct nlm_rqst * nlmclnt_alloc_call(void); | |||
| 149 | int nlmclnt_prepare_block(struct nlm_rqst *req, struct nlm_host *host, struct file_lock *fl); | 149 | int nlmclnt_prepare_block(struct nlm_rqst *req, struct nlm_host *host, struct file_lock *fl); |
| 150 | void nlmclnt_finish_block(struct nlm_rqst *req); | 150 | void nlmclnt_finish_block(struct nlm_rqst *req); |
| 151 | long nlmclnt_block(struct nlm_rqst *req, long timeout); | 151 | long nlmclnt_block(struct nlm_rqst *req, long timeout); |
| 152 | u32 nlmclnt_grant(struct nlm_lock *); | 152 | u32 nlmclnt_grant(const struct sockaddr_in *addr, const struct nlm_lock *); |
| 153 | void nlmclnt_recovery(struct nlm_host *, u32); | 153 | void nlmclnt_recovery(struct nlm_host *, u32); |
| 154 | int nlmclnt_reclaim(struct nlm_host *, struct file_lock *); | 154 | int nlmclnt_reclaim(struct nlm_host *, struct file_lock *); |
| 155 | int nlmclnt_setgrantargs(struct nlm_rqst *, struct nlm_lock *); | 155 | int nlmclnt_setgrantargs(struct nlm_rqst *, struct nlm_lock *); |
| @@ -204,7 +204,7 @@ nlmsvc_file_inode(struct nlm_file *file) | |||
| 204 | * Compare two host addresses (needs modifying for ipv6) | 204 | * Compare two host addresses (needs modifying for ipv6) |
| 205 | */ | 205 | */ |
| 206 | static __inline__ int | 206 | static __inline__ int |
| 207 | nlm_cmp_addr(struct sockaddr_in *sin1, struct sockaddr_in *sin2) | 207 | nlm_cmp_addr(const struct sockaddr_in *sin1, const struct sockaddr_in *sin2) |
| 208 | { | 208 | { |
| 209 | return sin1->sin_addr.s_addr == sin2->sin_addr.s_addr; | 209 | return sin1->sin_addr.s_addr == sin2->sin_addr.s_addr; |
| 210 | } | 210 | } |
| @@ -214,7 +214,7 @@ nlm_cmp_addr(struct sockaddr_in *sin1, struct sockaddr_in *sin2) | |||
| 214 | * When the second lock is of type F_UNLCK, this acts like a wildcard. | 214 | * When the second lock is of type F_UNLCK, this acts like a wildcard. |
| 215 | */ | 215 | */ |
| 216 | static __inline__ int | 216 | static __inline__ int |
| 217 | nlm_compare_locks(struct file_lock *fl1, struct file_lock *fl2) | 217 | nlm_compare_locks(const struct file_lock *fl1, const struct file_lock *fl2) |
| 218 | { | 218 | { |
| 219 | return fl1->fl_pid == fl2->fl_pid | 219 | return fl1->fl_pid == fl2->fl_pid |
| 220 | && fl1->fl_start == fl2->fl_start | 220 | && fl1->fl_start == fl2->fl_start |
diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h index 01f03bc06eff..968b1aa3732c 100644 --- a/include/linux/memory_hotplug.h +++ b/include/linux/memory_hotplug.h | |||
| @@ -6,6 +6,10 @@ | |||
| 6 | #include <linux/mmzone.h> | 6 | #include <linux/mmzone.h> |
| 7 | #include <linux/notifier.h> | 7 | #include <linux/notifier.h> |
| 8 | 8 | ||
| 9 | struct page; | ||
| 10 | struct zone; | ||
| 11 | struct pglist_data; | ||
| 12 | |||
| 9 | #ifdef CONFIG_MEMORY_HOTPLUG | 13 | #ifdef CONFIG_MEMORY_HOTPLUG |
| 10 | /* | 14 | /* |
| 11 | * pgdat resizing functions | 15 | * pgdat resizing functions |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 85854b867463..498ff8778fb6 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -303,7 +303,7 @@ struct page { | |||
| 303 | */ | 303 | */ |
| 304 | #define put_page_testzero(p) \ | 304 | #define put_page_testzero(p) \ |
| 305 | ({ \ | 305 | ({ \ |
| 306 | BUG_ON(page_count(p) == 0); \ | 306 | BUG_ON(atomic_read(&(p)->_count) == -1);\ |
| 307 | atomic_add_negative(-1, &(p)->_count); \ | 307 | atomic_add_negative(-1, &(p)->_count); \ |
| 308 | }) | 308 | }) |
| 309 | 309 | ||
| @@ -1051,5 +1051,11 @@ int shrink_slab(unsigned long scanned, gfp_t gfp_mask, | |||
| 1051 | void drop_pagecache(void); | 1051 | void drop_pagecache(void); |
| 1052 | void drop_slab(void); | 1052 | void drop_slab(void); |
| 1053 | 1053 | ||
| 1054 | #ifndef CONFIG_MMU | ||
| 1055 | #define randomize_va_space 0 | ||
| 1056 | #else | ||
| 1057 | extern int randomize_va_space; | ||
| 1058 | #endif | ||
| 1059 | |||
| 1054 | #endif /* __KERNEL__ */ | 1060 | #endif /* __KERNEL__ */ |
| 1055 | #endif /* _LINUX_MM_H */ | 1061 | #endif /* _LINUX_MM_H */ |
diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h index ccd3e13de1e8..bdc556d88498 100644 --- a/include/linux/mmc/mmc.h +++ b/include/linux/mmc/mmc.h | |||
| @@ -21,24 +21,35 @@ struct mmc_command { | |||
| 21 | u32 arg; | 21 | u32 arg; |
| 22 | u32 resp[4]; | 22 | u32 resp[4]; |
| 23 | unsigned int flags; /* expected response type */ | 23 | unsigned int flags; /* expected response type */ |
| 24 | #define MMC_RSP_NONE (0 << 0) | 24 | #define MMC_RSP_PRESENT (1 << 0) |
| 25 | #define MMC_RSP_SHORT (1 << 0) | 25 | #define MMC_RSP_136 (1 << 1) /* 136 bit response */ |
| 26 | #define MMC_RSP_LONG (2 << 0) | 26 | #define MMC_RSP_CRC (1 << 2) /* expect valid crc */ |
| 27 | #define MMC_RSP_MASK (3 << 0) | 27 | #define MMC_RSP_BUSY (1 << 3) /* card may send busy */ |
| 28 | #define MMC_RSP_CRC (1 << 3) /* expect valid crc */ | 28 | #define MMC_RSP_OPCODE (1 << 4) /* response contains opcode */ |
| 29 | #define MMC_RSP_BUSY (1 << 4) /* card may send busy */ | 29 | #define MMC_CMD_MASK (3 << 5) /* command type */ |
| 30 | #define MMC_RSP_OPCODE (1 << 5) /* response contains opcode */ | 30 | #define MMC_CMD_AC (0 << 5) |
| 31 | #define MMC_CMD_ADTC (1 << 5) | ||
| 32 | #define MMC_CMD_BC (2 << 5) | ||
| 33 | #define MMC_CMD_BCR (3 << 5) | ||
| 31 | 34 | ||
| 32 | /* | 35 | /* |
| 33 | * These are the response types, and correspond to valid bit | 36 | * These are the response types, and correspond to valid bit |
| 34 | * patterns of the above flags. One additional valid pattern | 37 | * patterns of the above flags. One additional valid pattern |
| 35 | * is all zeros, which means we don't expect a response. | 38 | * is all zeros, which means we don't expect a response. |
| 36 | */ | 39 | */ |
| 37 | #define MMC_RSP_R1 (MMC_RSP_SHORT|MMC_RSP_CRC|MMC_RSP_OPCODE) | 40 | #define MMC_RSP_NONE (0) |
| 38 | #define MMC_RSP_R1B (MMC_RSP_SHORT|MMC_RSP_CRC|MMC_RSP_OPCODE|MMC_RSP_BUSY) | 41 | #define MMC_RSP_R1 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) |
| 39 | #define MMC_RSP_R2 (MMC_RSP_LONG|MMC_RSP_CRC) | 42 | #define MMC_RSP_R1B (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE|MMC_RSP_BUSY) |
| 40 | #define MMC_RSP_R3 (MMC_RSP_SHORT) | 43 | #define MMC_RSP_R2 (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC) |
| 41 | #define MMC_RSP_R6 (MMC_RSP_SHORT|MMC_RSP_CRC) | 44 | #define MMC_RSP_R3 (MMC_RSP_PRESENT) |
| 45 | #define MMC_RSP_R6 (MMC_RSP_PRESENT|MMC_RSP_CRC) | ||
| 46 | |||
| 47 | #define mmc_resp_type(cmd) ((cmd)->flags & (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC|MMC_RSP_BUSY|MMC_RSP_OPCODE)) | ||
| 48 | |||
| 49 | /* | ||
| 50 | * These are the command types. | ||
| 51 | */ | ||
| 52 | #define mmc_cmd_type(cmd) ((cmd)->flags & MMC_CMD_MASK) | ||
| 42 | 53 | ||
| 43 | unsigned int retries; /* max number of retries */ | 54 | unsigned int retries; /* max number of retries */ |
| 44 | unsigned int error; /* command error */ | 55 | unsigned int error; /* command error */ |
diff --git a/include/linux/mmc/protocol.h b/include/linux/mmc/protocol.h index a14dc306545b..81c3f77f652c 100644 --- a/include/linux/mmc/protocol.h +++ b/include/linux/mmc/protocol.h | |||
| @@ -79,7 +79,7 @@ | |||
| 79 | /* SD commands type argument response */ | 79 | /* SD commands type argument response */ |
| 80 | /* class 8 */ | 80 | /* class 8 */ |
| 81 | /* This is basically the same command as for MMC with some quirks. */ | 81 | /* This is basically the same command as for MMC with some quirks. */ |
| 82 | #define SD_SEND_RELATIVE_ADDR 3 /* ac R6 */ | 82 | #define SD_SEND_RELATIVE_ADDR 3 /* bcr R6 */ |
| 83 | 83 | ||
| 84 | /* Application commands */ | 84 | /* Application commands */ |
| 85 | #define SD_APP_SET_BUS_WIDTH 6 /* ac [1:0] bus width R1 */ | 85 | #define SD_APP_SET_BUS_WIDTH 6 /* ac [1:0] bus width R1 */ |
diff --git a/include/linux/mtd/map.h b/include/linux/mtd/map.h index fedfbc8a287f..7dfd6e1fcde7 100644 --- a/include/linux/mtd/map.h +++ b/include/linux/mtd/map.h | |||
| @@ -15,7 +15,6 @@ | |||
| 15 | #include <asm/unaligned.h> | 15 | #include <asm/unaligned.h> |
| 16 | #include <asm/system.h> | 16 | #include <asm/system.h> |
| 17 | #include <asm/io.h> | 17 | #include <asm/io.h> |
| 18 | #include <asm/bug.h> | ||
| 19 | 18 | ||
| 20 | #ifdef CONFIG_MTD_MAP_BANK_WIDTH_1 | 19 | #ifdef CONFIG_MTD_MAP_BANK_WIDTH_1 |
| 21 | #define map_bankwidth(map) 1 | 20 | #define map_bankwidth(map) 1 |
diff --git a/include/linux/namespace.h b/include/linux/namespace.h index 6731977c4c13..3abc8e3b4879 100644 --- a/include/linux/namespace.h +++ b/include/linux/namespace.h | |||
| @@ -15,6 +15,7 @@ struct namespace { | |||
| 15 | 15 | ||
| 16 | extern int copy_namespace(int, struct task_struct *); | 16 | extern int copy_namespace(int, struct task_struct *); |
| 17 | extern void __put_namespace(struct namespace *namespace); | 17 | extern void __put_namespace(struct namespace *namespace); |
| 18 | extern struct namespace *dup_namespace(struct task_struct *, struct fs_struct *); | ||
| 18 | 19 | ||
| 19 | static inline void put_namespace(struct namespace *namespace) | 20 | static inline void put_namespace(struct namespace *namespace) |
| 20 | { | 21 | { |
diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h index 4cf6088625c1..468896939843 100644 --- a/include/linux/netfilter.h +++ b/include/linux/netfilter.h | |||
| @@ -184,8 +184,11 @@ static inline int nf_hook_thresh(int pf, unsigned int hook, | |||
| 184 | struct sk_buff **pskb, | 184 | struct sk_buff **pskb, |
| 185 | struct net_device *indev, | 185 | struct net_device *indev, |
| 186 | struct net_device *outdev, | 186 | struct net_device *outdev, |
| 187 | int (*okfn)(struct sk_buff *), int thresh) | 187 | int (*okfn)(struct sk_buff *), int thresh, |
| 188 | int cond) | ||
| 188 | { | 189 | { |
| 190 | if (!cond) | ||
| 191 | return 1; | ||
| 189 | #ifndef CONFIG_NETFILTER_DEBUG | 192 | #ifndef CONFIG_NETFILTER_DEBUG |
| 190 | if (list_empty(&nf_hooks[pf][hook])) | 193 | if (list_empty(&nf_hooks[pf][hook])) |
| 191 | return 1; | 194 | return 1; |
| @@ -197,7 +200,7 @@ static inline int nf_hook(int pf, unsigned int hook, struct sk_buff **pskb, | |||
| 197 | struct net_device *indev, struct net_device *outdev, | 200 | struct net_device *indev, struct net_device *outdev, |
| 198 | int (*okfn)(struct sk_buff *)) | 201 | int (*okfn)(struct sk_buff *)) |
| 199 | { | 202 | { |
| 200 | return nf_hook_thresh(pf, hook, pskb, indev, outdev, okfn, INT_MIN); | 203 | return nf_hook_thresh(pf, hook, pskb, indev, outdev, okfn, INT_MIN, 1); |
| 201 | } | 204 | } |
| 202 | 205 | ||
| 203 | /* Activate hook; either okfn or kfree_skb called, unless a hook | 206 | /* Activate hook; either okfn or kfree_skb called, unless a hook |
| @@ -224,7 +227,13 @@ static inline int nf_hook(int pf, unsigned int hook, struct sk_buff **pskb, | |||
| 224 | 227 | ||
| 225 | #define NF_HOOK_THRESH(pf, hook, skb, indev, outdev, okfn, thresh) \ | 228 | #define NF_HOOK_THRESH(pf, hook, skb, indev, outdev, okfn, thresh) \ |
| 226 | ({int __ret; \ | 229 | ({int __ret; \ |
| 227 | if ((__ret=nf_hook_thresh(pf, hook, &(skb), indev, outdev, okfn, thresh)) == 1)\ | 230 | if ((__ret=nf_hook_thresh(pf, hook, &(skb), indev, outdev, okfn, thresh, 1)) == 1)\ |
| 231 | __ret = (okfn)(skb); \ | ||
| 232 | __ret;}) | ||
| 233 | |||
| 234 | #define NF_HOOK_COND(pf, hook, skb, indev, outdev, okfn, cond) \ | ||
| 235 | ({int __ret; \ | ||
| 236 | if ((__ret=nf_hook_thresh(pf, hook, &(skb), indev, outdev, okfn, INT_MIN, cond)) == 1)\ | ||
| 228 | __ret = (okfn)(skb); \ | 237 | __ret = (okfn)(skb); \ |
| 229 | __ret;}) | 238 | __ret;}) |
| 230 | 239 | ||
| @@ -295,11 +304,13 @@ extern struct proc_dir_entry *proc_net_netfilter; | |||
| 295 | 304 | ||
| 296 | #else /* !CONFIG_NETFILTER */ | 305 | #else /* !CONFIG_NETFILTER */ |
| 297 | #define NF_HOOK(pf, hook, skb, indev, outdev, okfn) (okfn)(skb) | 306 | #define NF_HOOK(pf, hook, skb, indev, outdev, okfn) (okfn)(skb) |
| 307 | #define NF_HOOK_COND(pf, hook, skb, indev, outdev, okfn, cond) (okfn)(skb) | ||
| 298 | static inline int nf_hook_thresh(int pf, unsigned int hook, | 308 | static inline int nf_hook_thresh(int pf, unsigned int hook, |
| 299 | struct sk_buff **pskb, | 309 | struct sk_buff **pskb, |
| 300 | struct net_device *indev, | 310 | struct net_device *indev, |
| 301 | struct net_device *outdev, | 311 | struct net_device *outdev, |
| 302 | int (*okfn)(struct sk_buff *), int thresh) | 312 | int (*okfn)(struct sk_buff *), int thresh, |
| 313 | int cond) | ||
| 303 | { | 314 | { |
| 304 | return okfn(*pskb); | 315 | return okfn(*pskb); |
| 305 | } | 316 | } |
| @@ -307,7 +318,7 @@ static inline int nf_hook(int pf, unsigned int hook, struct sk_buff **pskb, | |||
| 307 | struct net_device *indev, struct net_device *outdev, | 318 | struct net_device *indev, struct net_device *outdev, |
| 308 | int (*okfn)(struct sk_buff *)) | 319 | int (*okfn)(struct sk_buff *)) |
| 309 | { | 320 | { |
| 310 | return okfn(*pskb); | 321 | return 1; |
| 311 | } | 322 | } |
| 312 | static inline void nf_ct_attach(struct sk_buff *new, struct sk_buff *skb) {} | 323 | static inline void nf_ct_attach(struct sk_buff *new, struct sk_buff *skb) {} |
| 313 | struct flowi; | 324 | struct flowi; |
diff --git a/include/linux/netfilter_bridge/ebt_log.h b/include/linux/netfilter_bridge/ebt_log.h index 358fbc84fb59..96e231ae7554 100644 --- a/include/linux/netfilter_bridge/ebt_log.h +++ b/include/linux/netfilter_bridge/ebt_log.h | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | 3 | ||
| 4 | #define EBT_LOG_IP 0x01 /* if the frame is made by ip, log the ip information */ | 4 | #define EBT_LOG_IP 0x01 /* if the frame is made by ip, log the ip information */ |
| 5 | #define EBT_LOG_ARP 0x02 | 5 | #define EBT_LOG_ARP 0x02 |
| 6 | #define EBT_LOG_NFLOG 0x04 | ||
| 6 | #define EBT_LOG_MASK (EBT_LOG_IP | EBT_LOG_ARP) | 7 | #define EBT_LOG_MASK (EBT_LOG_IP | EBT_LOG_ARP) |
| 7 | #define EBT_LOG_PREFIX_SIZE 30 | 8 | #define EBT_LOG_PREFIX_SIZE 30 |
| 8 | #define EBT_LOG_WATCHER "log" | 9 | #define EBT_LOG_WATCHER "log" |
diff --git a/include/linux/netfilter_ipv4.h b/include/linux/netfilter_ipv4.h index fdc4a9527343..43c09d790b83 100644 --- a/include/linux/netfilter_ipv4.h +++ b/include/linux/netfilter_ipv4.h | |||
| @@ -79,7 +79,7 @@ enum nf_ip_hook_priorities { | |||
| 79 | 79 | ||
| 80 | #ifdef __KERNEL__ | 80 | #ifdef __KERNEL__ |
| 81 | extern int ip_route_me_harder(struct sk_buff **pskb); | 81 | extern int ip_route_me_harder(struct sk_buff **pskb); |
| 82 | 82 | extern int ip_xfrm_me_harder(struct sk_buff **pskb); | |
| 83 | #endif /*__KERNEL__*/ | 83 | #endif /*__KERNEL__*/ |
| 84 | 84 | ||
| 85 | #endif /*__LINUX_IP_NETFILTER_H*/ | 85 | #endif /*__LINUX_IP_NETFILTER_H*/ |
diff --git a/include/linux/netfilter_ipv4/ipt_LOG.h b/include/linux/netfilter_ipv4/ipt_LOG.h index 22d16177319b..892f9a33fea8 100644 --- a/include/linux/netfilter_ipv4/ipt_LOG.h +++ b/include/linux/netfilter_ipv4/ipt_LOG.h | |||
| @@ -6,7 +6,8 @@ | |||
| 6 | #define IPT_LOG_TCPOPT 0x02 /* Log TCP options */ | 6 | #define IPT_LOG_TCPOPT 0x02 /* Log TCP options */ |
| 7 | #define IPT_LOG_IPOPT 0x04 /* Log IP options */ | 7 | #define IPT_LOG_IPOPT 0x04 /* Log IP options */ |
| 8 | #define IPT_LOG_UID 0x08 /* Log UID owning local socket */ | 8 | #define IPT_LOG_UID 0x08 /* Log UID owning local socket */ |
| 9 | #define IPT_LOG_MASK 0x0f | 9 | #define IPT_LOG_NFLOG 0x10 /* Log using nf_log backend */ |
| 10 | #define IPT_LOG_MASK 0x1f | ||
| 10 | 11 | ||
| 11 | struct ipt_log_info { | 12 | struct ipt_log_info { |
| 12 | unsigned char level; | 13 | unsigned char level; |
diff --git a/include/linux/netfilter_ipv4/ipt_connbytes.h b/include/linux/netfilter_ipv4/ipt_connbytes.h index b04dfa3083c9..f63e6ee91113 100644 --- a/include/linux/netfilter_ipv4/ipt_connbytes.h +++ b/include/linux/netfilter_ipv4/ipt_connbytes.h | |||
| @@ -1,10 +1,10 @@ | |||
| 1 | #ifndef _IPT_CONNBYTES_H | 1 | #ifndef _IPT_CONNBYTES_H |
| 2 | #define _IPT_CONNBYTES_H | 2 | #define _IPT_CONNBYTES_H |
| 3 | 3 | ||
| 4 | #include <net/netfilter/xt_connbytes.h> | 4 | #include <linux/netfilter/xt_connbytes.h> |
| 5 | #define ipt_connbytes_what xt_connbytes_what | 5 | #define ipt_connbytes_what xt_connbytes_what |
| 6 | 6 | ||
| 7 | #define IPT_CONNBYTES_PKTS XT_CONNBYTES_PACKETS | 7 | #define IPT_CONNBYTES_PKTS XT_CONNBYTES_PKTS |
| 8 | #define IPT_CONNBYTES_BYTES XT_CONNBYTES_BYTES | 8 | #define IPT_CONNBYTES_BYTES XT_CONNBYTES_BYTES |
| 9 | #define IPT_CONNBYTES_AVGPKT XT_CONNBYTES_AVGPKT | 9 | #define IPT_CONNBYTES_AVGPKT XT_CONNBYTES_AVGPKT |
| 10 | 10 | ||
diff --git a/include/linux/netfilter_ipv4/ipt_policy.h b/include/linux/netfilter_ipv4/ipt_policy.h index 7fd1bec453f1..a3f6eff39d33 100644 --- a/include/linux/netfilter_ipv4/ipt_policy.h +++ b/include/linux/netfilter_ipv4/ipt_policy.h | |||
| @@ -27,16 +27,22 @@ struct ipt_policy_spec | |||
| 27 | reqid:1; | 27 | reqid:1; |
| 28 | }; | 28 | }; |
| 29 | 29 | ||
| 30 | union ipt_policy_addr | ||
| 31 | { | ||
| 32 | struct in_addr a4; | ||
| 33 | struct in6_addr a6; | ||
| 34 | }; | ||
| 35 | |||
| 30 | struct ipt_policy_elem | 36 | struct ipt_policy_elem |
| 31 | { | 37 | { |
| 32 | u_int32_t saddr; | 38 | union ipt_policy_addr saddr; |
| 33 | u_int32_t smask; | 39 | union ipt_policy_addr smask; |
| 34 | u_int32_t daddr; | 40 | union ipt_policy_addr daddr; |
| 35 | u_int32_t dmask; | 41 | union ipt_policy_addr dmask; |
| 36 | u_int32_t spi; | 42 | u_int32_t spi; |
| 37 | u_int32_t reqid; | 43 | u_int32_t reqid; |
| 38 | u_int8_t proto; | 44 | u_int8_t proto; |
| 39 | u_int8_t mode; | 45 | u_int8_t mode; |
| 40 | 46 | ||
| 41 | struct ipt_policy_spec match; | 47 | struct ipt_policy_spec match; |
| 42 | struct ipt_policy_spec invert; | 48 | struct ipt_policy_spec invert; |
diff --git a/include/linux/netfilter_ipv6/ip6t_LOG.h b/include/linux/netfilter_ipv6/ip6t_LOG.h index 9008ff5c40ae..060c1a1c6c60 100644 --- a/include/linux/netfilter_ipv6/ip6t_LOG.h +++ b/include/linux/netfilter_ipv6/ip6t_LOG.h | |||
| @@ -6,7 +6,8 @@ | |||
| 6 | #define IP6T_LOG_TCPOPT 0x02 /* Log TCP options */ | 6 | #define IP6T_LOG_TCPOPT 0x02 /* Log TCP options */ |
| 7 | #define IP6T_LOG_IPOPT 0x04 /* Log IP options */ | 7 | #define IP6T_LOG_IPOPT 0x04 /* Log IP options */ |
| 8 | #define IP6T_LOG_UID 0x08 /* Log UID owning local socket */ | 8 | #define IP6T_LOG_UID 0x08 /* Log UID owning local socket */ |
| 9 | #define IP6T_LOG_MASK 0x0f | 9 | #define IP6T_LOG_NFLOG 0x10 /* Log using nf_log backend */ |
| 10 | #define IP6T_LOG_MASK 0x1f | ||
| 10 | 11 | ||
| 11 | struct ip6t_log_info { | 12 | struct ip6t_log_info { |
| 12 | unsigned char level; | 13 | unsigned char level; |
diff --git a/include/linux/netfilter_ipv6/ip6t_policy.h b/include/linux/netfilter_ipv6/ip6t_policy.h index 5a93afcd2ff1..671bd818300f 100644 --- a/include/linux/netfilter_ipv6/ip6t_policy.h +++ b/include/linux/netfilter_ipv6/ip6t_policy.h | |||
| @@ -27,16 +27,22 @@ struct ip6t_policy_spec | |||
| 27 | reqid:1; | 27 | reqid:1; |
| 28 | }; | 28 | }; |
| 29 | 29 | ||
| 30 | union ip6t_policy_addr | ||
| 31 | { | ||
| 32 | struct in_addr a4; | ||
| 33 | struct in6_addr a6; | ||
| 34 | }; | ||
| 35 | |||
| 30 | struct ip6t_policy_elem | 36 | struct ip6t_policy_elem |
| 31 | { | 37 | { |
| 32 | struct in6_addr saddr; | 38 | union ip6t_policy_addr saddr; |
| 33 | struct in6_addr smask; | 39 | union ip6t_policy_addr smask; |
| 34 | struct in6_addr daddr; | 40 | union ip6t_policy_addr daddr; |
| 35 | struct in6_addr dmask; | 41 | union ip6t_policy_addr dmask; |
| 36 | u_int32_t spi; | 42 | u_int32_t spi; |
| 37 | u_int32_t reqid; | 43 | u_int32_t reqid; |
| 38 | u_int8_t proto; | 44 | u_int8_t proto; |
| 39 | u_int8_t mode; | 45 | u_int8_t mode; |
| 40 | 46 | ||
| 41 | struct ip6t_policy_spec match; | 47 | struct ip6t_policy_spec match; |
| 42 | struct ip6t_policy_spec invert; | 48 | struct ip6t_policy_spec invert; |
diff --git a/include/linux/netlink.h b/include/linux/netlink.h index 6a2ccf78a356..c256ebe2a7b4 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h | |||
| @@ -160,7 +160,8 @@ extern int netlink_unregister_notifier(struct notifier_block *nb); | |||
| 160 | 160 | ||
| 161 | /* finegrained unicast helpers: */ | 161 | /* finegrained unicast helpers: */ |
| 162 | struct sock *netlink_getsockbyfilp(struct file *filp); | 162 | struct sock *netlink_getsockbyfilp(struct file *filp); |
| 163 | int netlink_attachskb(struct sock *sk, struct sk_buff *skb, int nonblock, long timeo); | 163 | int netlink_attachskb(struct sock *sk, struct sk_buff *skb, int nonblock, |
| 164 | long timeo, struct sock *ssk); | ||
| 164 | void netlink_detachskb(struct sock *sk, struct sk_buff *skb); | 165 | void netlink_detachskb(struct sock *sk, struct sk_buff *skb); |
| 165 | int netlink_sendskb(struct sock *sk, struct sk_buff *skb, int protocol); | 166 | int netlink_sendskb(struct sock *sk, struct sk_buff *skb, int protocol); |
| 166 | 167 | ||
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 547d649b274e..b4dc6e2e10c9 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
| @@ -398,7 +398,7 @@ extern struct inode_operations nfs_symlink_inode_operations; | |||
| 398 | extern int nfs_register_sysctl(void); | 398 | extern int nfs_register_sysctl(void); |
| 399 | extern void nfs_unregister_sysctl(void); | 399 | extern void nfs_unregister_sysctl(void); |
| 400 | #else | 400 | #else |
| 401 | #define nfs_register_sysctl() do { } while(0) | 401 | #define nfs_register_sysctl() 0 |
| 402 | #define nfs_unregister_sysctl() do { } while(0) | 402 | #define nfs_unregister_sysctl() do { } while(0) |
| 403 | #endif | 403 | #endif |
| 404 | 404 | ||
diff --git a/include/linux/nodemask.h b/include/linux/nodemask.h index 4726ef7ba8e8..b959a4525cbd 100644 --- a/include/linux/nodemask.h +++ b/include/linux/nodemask.h | |||
| @@ -84,7 +84,6 @@ | |||
| 84 | #include <linux/threads.h> | 84 | #include <linux/threads.h> |
| 85 | #include <linux/bitmap.h> | 85 | #include <linux/bitmap.h> |
| 86 | #include <linux/numa.h> | 86 | #include <linux/numa.h> |
| 87 | #include <asm/bug.h> | ||
| 88 | 87 | ||
| 89 | typedef struct { DECLARE_BITMAP(bits, MAX_NUMNODES); } nodemask_t; | 88 | typedef struct { DECLARE_BITMAP(bits, MAX_NUMNODES); } nodemask_t; |
| 90 | extern nodemask_t _unused_nodemask_arg_; | 89 | extern nodemask_t _unused_nodemask_arg_; |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index b0b908f583c5..751eea58bde8 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -1087,6 +1087,7 @@ | |||
| 1087 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_440_8X 0x0181 | 1087 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_440_8X 0x0181 |
| 1088 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_440SE_8X 0x0182 | 1088 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_440SE_8X 0x0182 |
| 1089 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_420_8X 0x0183 | 1089 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_420_8X 0x0183 |
| 1090 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_4000 0x0185 | ||
| 1090 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_448_GO 0x0186 | 1091 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_448_GO 0x0186 |
| 1091 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_488_GO 0x0187 | 1092 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_488_GO 0x0187 |
| 1092 | #define PCI_DEVICE_ID_NVIDIA_QUADRO4_580_XGL 0x0188 | 1093 | #define PCI_DEVICE_ID_NVIDIA_QUADRO4_580_XGL 0x0188 |
| @@ -1364,6 +1365,7 @@ | |||
| 1364 | #define PCI_DEVICE_ID_SERVERWORKS_HE 0x0008 | 1365 | #define PCI_DEVICE_ID_SERVERWORKS_HE 0x0008 |
| 1365 | #define PCI_DEVICE_ID_SERVERWORKS_LE 0x0009 | 1366 | #define PCI_DEVICE_ID_SERVERWORKS_LE 0x0009 |
| 1366 | #define PCI_DEVICE_ID_SERVERWORKS_GCNB_LE 0x0017 | 1367 | #define PCI_DEVICE_ID_SERVERWORKS_GCNB_LE 0x0017 |
| 1368 | #define PCI_DEVICE_ID_SERVERWORKS_EPB 0x0103 | ||
| 1367 | #define PCI_DEVICE_ID_SERVERWORKS_OSB4 0x0200 | 1369 | #define PCI_DEVICE_ID_SERVERWORKS_OSB4 0x0200 |
| 1368 | #define PCI_DEVICE_ID_SERVERWORKS_CSB5 0x0201 | 1370 | #define PCI_DEVICE_ID_SERVERWORKS_CSB5 0x0201 |
| 1369 | #define PCI_DEVICE_ID_SERVERWORKS_CSB6 0x0203 | 1371 | #define PCI_DEVICE_ID_SERVERWORKS_CSB6 0x0203 |
| @@ -1670,6 +1672,9 @@ | |||
| 1670 | #define PCI_DEVICE_ID_SIIG_2S1P_20x_550 0x2060 | 1672 | #define PCI_DEVICE_ID_SIIG_2S1P_20x_550 0x2060 |
| 1671 | #define PCI_DEVICE_ID_SIIG_2S1P_20x_650 0x2061 | 1673 | #define PCI_DEVICE_ID_SIIG_2S1P_20x_650 0x2061 |
| 1672 | #define PCI_DEVICE_ID_SIIG_2S1P_20x_850 0x2062 | 1674 | #define PCI_DEVICE_ID_SIIG_2S1P_20x_850 0x2062 |
| 1675 | #define PCI_DEVICE_ID_SIIG_8S_20x_550 0x2080 | ||
| 1676 | #define PCI_DEVICE_ID_SIIG_8S_20x_650 0x2081 | ||
| 1677 | #define PCI_DEVICE_ID_SIIG_8S_20x_850 0x2082 | ||
| 1673 | #define PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL 0x2050 | 1678 | #define PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL 0x2050 |
| 1674 | 1679 | ||
| 1675 | #define PCI_VENDOR_ID_RADISYS 0x1331 | 1680 | #define PCI_VENDOR_ID_RADISYS 0x1331 |
| @@ -1748,6 +1753,8 @@ | |||
| 1748 | #define PCI_DEVICE_ID_CCD_B00B 0xb00b | 1753 | #define PCI_DEVICE_ID_CCD_B00B 0xb00b |
| 1749 | #define PCI_DEVICE_ID_CCD_B00C 0xb00c | 1754 | #define PCI_DEVICE_ID_CCD_B00C 0xb00c |
| 1750 | #define PCI_DEVICE_ID_CCD_B100 0xb100 | 1755 | #define PCI_DEVICE_ID_CCD_B100 0xb100 |
| 1756 | #define PCI_DEVICE_ID_CCD_B700 0xb700 | ||
| 1757 | #define PCI_DEVICE_ID_CCD_B701 0xb701 | ||
| 1751 | 1758 | ||
| 1752 | #define PCI_VENDOR_ID_EXAR 0x13a8 | 1759 | #define PCI_VENDOR_ID_EXAR 0x13a8 |
| 1753 | #define PCI_DEVICE_ID_EXAR_XR17C152 0x0152 | 1760 | #define PCI_DEVICE_ID_EXAR_XR17C152 0x0152 |
| @@ -1829,6 +1836,7 @@ | |||
| 1829 | #define PCI_VENDOR_ID_AFAVLAB 0x14db | 1836 | #define PCI_VENDOR_ID_AFAVLAB 0x14db |
| 1830 | #define PCI_DEVICE_ID_AFAVLAB_P028 0x2180 | 1837 | #define PCI_DEVICE_ID_AFAVLAB_P028 0x2180 |
| 1831 | #define PCI_DEVICE_ID_AFAVLAB_P030 0x2182 | 1838 | #define PCI_DEVICE_ID_AFAVLAB_P030 0x2182 |
| 1839 | #define PCI_SUBDEVICE_ID_AFAVLAB_P061 0x2150 | ||
| 1832 | 1840 | ||
| 1833 | #define PCI_VENDOR_ID_BROADCOM 0x14e4 | 1841 | #define PCI_VENDOR_ID_BROADCOM 0x14e4 |
| 1834 | #define PCI_DEVICE_ID_TIGON3_5752 0x1600 | 1842 | #define PCI_DEVICE_ID_TIGON3_5752 0x1600 |
diff --git a/include/linux/percpu_counter.h b/include/linux/percpu_counter.h index bd6708e2c027..682525511c9e 100644 --- a/include/linux/percpu_counter.h +++ b/include/linux/percpu_counter.h | |||
| @@ -39,6 +39,7 @@ static inline void percpu_counter_destroy(struct percpu_counter *fbc) | |||
| 39 | } | 39 | } |
| 40 | 40 | ||
| 41 | void percpu_counter_mod(struct percpu_counter *fbc, long amount); | 41 | void percpu_counter_mod(struct percpu_counter *fbc, long amount); |
| 42 | long percpu_counter_sum(struct percpu_counter *fbc); | ||
| 42 | 43 | ||
| 43 | static inline long percpu_counter_read(struct percpu_counter *fbc) | 44 | static inline long percpu_counter_read(struct percpu_counter *fbc) |
| 44 | { | 45 | { |
| @@ -92,6 +93,11 @@ static inline long percpu_counter_read_positive(struct percpu_counter *fbc) | |||
| 92 | return fbc->count; | 93 | return fbc->count; |
| 93 | } | 94 | } |
| 94 | 95 | ||
| 96 | static inline long percpu_counter_sum(struct percpu_counter *fbc) | ||
| 97 | { | ||
| 98 | return percpu_counter_read_positive(fbc); | ||
| 99 | } | ||
| 100 | |||
| 95 | #endif /* CONFIG_SMP */ | 101 | #endif /* CONFIG_SMP */ |
| 96 | 102 | ||
| 97 | static inline void percpu_counter_inc(struct percpu_counter *fbc) | 103 | static inline void percpu_counter_inc(struct percpu_counter *fbc) |
diff --git a/include/linux/pktcdvd.h b/include/linux/pktcdvd.h index 2c177e4c8f22..8a94c717c266 100644 --- a/include/linux/pktcdvd.h +++ b/include/linux/pktcdvd.h | |||
| @@ -114,7 +114,7 @@ struct pkt_ctrl_command { | |||
| 114 | 114 | ||
| 115 | struct packet_settings | 115 | struct packet_settings |
| 116 | { | 116 | { |
| 117 | __u8 size; /* packet size in (512 byte) sectors */ | 117 | __u32 size; /* packet size in (512 byte) sectors */ |
| 118 | __u8 fp; /* fixed packets */ | 118 | __u8 fp; /* fixed packets */ |
| 119 | __u8 link_loss; /* the rest is specified | 119 | __u8 link_loss; /* the rest is specified |
| 120 | * as per Mt Fuji */ | 120 | * as per Mt Fuji */ |
| @@ -169,8 +169,8 @@ struct packet_iosched | |||
| 169 | #if (PAGE_SIZE % CD_FRAMESIZE) != 0 | 169 | #if (PAGE_SIZE % CD_FRAMESIZE) != 0 |
| 170 | #error "PAGE_SIZE must be a multiple of CD_FRAMESIZE" | 170 | #error "PAGE_SIZE must be a multiple of CD_FRAMESIZE" |
| 171 | #endif | 171 | #endif |
| 172 | #define PACKET_MAX_SIZE 32 | 172 | #define PACKET_MAX_SIZE 128 |
| 173 | #define PAGES_PER_PACKET (PACKET_MAX_SIZE * CD_FRAMESIZE / PAGE_SIZE) | 173 | #define FRAMES_PER_PAGE (PAGE_SIZE / CD_FRAMESIZE) |
| 174 | #define PACKET_MAX_SECTORS (PACKET_MAX_SIZE * CD_FRAMESIZE >> 9) | 174 | #define PACKET_MAX_SECTORS (PACKET_MAX_SIZE * CD_FRAMESIZE >> 9) |
| 175 | 175 | ||
| 176 | enum packet_data_state { | 176 | enum packet_data_state { |
| @@ -219,7 +219,7 @@ struct packet_data | |||
| 219 | atomic_t io_errors; /* Number of read/write errors during IO */ | 219 | atomic_t io_errors; /* Number of read/write errors during IO */ |
| 220 | 220 | ||
| 221 | struct bio *r_bios[PACKET_MAX_SIZE]; /* bios to use during data gathering */ | 221 | struct bio *r_bios[PACKET_MAX_SIZE]; /* bios to use during data gathering */ |
| 222 | struct page *pages[PAGES_PER_PACKET]; | 222 | struct page *pages[PACKET_MAX_SIZE / FRAMES_PER_PAGE]; |
| 223 | 223 | ||
| 224 | int cache_valid; /* If non-zero, the data for the zone defined */ | 224 | int cache_valid; /* If non-zero, the data for the zone defined */ |
| 225 | /* by the sector variable is completely cached */ | 225 | /* by the sector variable is completely cached */ |
diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h index 9d5cd106b344..0d36750fc0f1 100644 --- a/include/linux/ptrace.h +++ b/include/linux/ptrace.h | |||
| @@ -84,6 +84,7 @@ extern int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __us | |||
| 84 | extern int ptrace_writedata(struct task_struct *tsk, char __user *src, unsigned long dst, int len); | 84 | extern int ptrace_writedata(struct task_struct *tsk, char __user *src, unsigned long dst, int len); |
| 85 | extern int ptrace_attach(struct task_struct *tsk); | 85 | extern int ptrace_attach(struct task_struct *tsk); |
| 86 | extern int ptrace_detach(struct task_struct *, unsigned int); | 86 | extern int ptrace_detach(struct task_struct *, unsigned int); |
| 87 | extern void __ptrace_detach(struct task_struct *, unsigned int); | ||
| 87 | extern void ptrace_disable(struct task_struct *); | 88 | extern void ptrace_disable(struct task_struct *); |
| 88 | extern int ptrace_check_attach(struct task_struct *task, int kill); | 89 | extern int ptrace_check_attach(struct task_struct *task, int kill); |
| 89 | extern int ptrace_request(struct task_struct *child, long request, long addr, long data); | 90 | extern int ptrace_request(struct task_struct *child, long request, long addr, long data); |
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index b87aefa082e2..c2ec6c77874e 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
| @@ -98,13 +98,17 @@ struct rcu_data { | |||
| 98 | long batch; /* Batch # for current RCU batch */ | 98 | long batch; /* Batch # for current RCU batch */ |
| 99 | struct rcu_head *nxtlist; | 99 | struct rcu_head *nxtlist; |
| 100 | struct rcu_head **nxttail; | 100 | struct rcu_head **nxttail; |
| 101 | long count; /* # of queued items */ | 101 | long qlen; /* # of queued callbacks */ |
| 102 | struct rcu_head *curlist; | 102 | struct rcu_head *curlist; |
| 103 | struct rcu_head **curtail; | 103 | struct rcu_head **curtail; |
| 104 | struct rcu_head *donelist; | 104 | struct rcu_head *donelist; |
| 105 | struct rcu_head **donetail; | 105 | struct rcu_head **donetail; |
| 106 | long blimit; /* Upper limit on a processed batch */ | ||
| 106 | int cpu; | 107 | int cpu; |
| 107 | struct rcu_head barrier; | 108 | struct rcu_head barrier; |
| 109 | #ifdef CONFIG_SMP | ||
| 110 | long last_rs_qlen; /* qlen during the last resched */ | ||
| 111 | #endif | ||
| 108 | }; | 112 | }; |
| 109 | 113 | ||
| 110 | DECLARE_PER_CPU(struct rcu_data, rcu_data); | 114 | DECLARE_PER_CPU(struct rcu_data, rcu_data); |
diff --git a/include/linux/reiserfs_acl.h b/include/linux/reiserfs_acl.h index 0a3605099c44..806ec5b06707 100644 --- a/include/linux/reiserfs_acl.h +++ b/include/linux/reiserfs_acl.h | |||
| @@ -58,9 +58,13 @@ extern struct reiserfs_xattr_handler posix_acl_default_handler; | |||
| 58 | extern struct reiserfs_xattr_handler posix_acl_access_handler; | 58 | extern struct reiserfs_xattr_handler posix_acl_access_handler; |
| 59 | #else | 59 | #else |
| 60 | 60 | ||
| 61 | #define reiserfs_get_acl NULL | ||
| 62 | #define reiserfs_cache_default_acl(inode) 0 | 61 | #define reiserfs_cache_default_acl(inode) 0 |
| 63 | 62 | ||
| 63 | static inline struct posix_acl *reiserfs_get_acl(struct inode *inode, int type) | ||
| 64 | { | ||
| 65 | return NULL; | ||
| 66 | } | ||
| 67 | |||
| 64 | static inline int reiserfs_xattr_posix_acl_init(void) | 68 | static inline int reiserfs_xattr_posix_acl_init(void) |
| 65 | { | 69 | { |
| 66 | return 0; | 70 | return 0; |
diff --git a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h index 7d51149bd793..dad78cecfd20 100644 --- a/include/linux/reiserfs_fs.h +++ b/include/linux/reiserfs_fs.h | |||
| @@ -1052,7 +1052,7 @@ struct reiserfs_dir_entry { | |||
| 1052 | int de_entrylen; | 1052 | int de_entrylen; |
| 1053 | int de_namelen; | 1053 | int de_namelen; |
| 1054 | char *de_name; | 1054 | char *de_name; |
| 1055 | char *de_gen_number_bit_string; | 1055 | unsigned long *de_gen_number_bit_string; |
| 1056 | 1056 | ||
| 1057 | __u32 de_dir_id; | 1057 | __u32 de_dir_id; |
| 1058 | __u32 de_objectid; | 1058 | __u32 de_objectid; |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 0cfcd1c7865e..62e6314382f0 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -298,8 +298,9 @@ struct mm_struct { | |||
| 298 | unsigned long addr, unsigned long len, | 298 | unsigned long addr, unsigned long len, |
| 299 | unsigned long pgoff, unsigned long flags); | 299 | unsigned long pgoff, unsigned long flags); |
| 300 | void (*unmap_area) (struct mm_struct *mm, unsigned long addr); | 300 | void (*unmap_area) (struct mm_struct *mm, unsigned long addr); |
| 301 | unsigned long mmap_base; /* base of mmap area */ | 301 | unsigned long mmap_base; /* base of mmap area */ |
| 302 | unsigned long cached_hole_size; /* if non-zero, the largest hole below free_area_cache */ | 302 | unsigned long task_size; /* size of task vm space */ |
| 303 | unsigned long cached_hole_size; /* if non-zero, the largest hole below free_area_cache */ | ||
| 303 | unsigned long free_area_cache; /* first hole of size cached_hole_size or larger */ | 304 | unsigned long free_area_cache; /* first hole of size cached_hole_size or larger */ |
| 304 | pgd_t * pgd; | 305 | pgd_t * pgd; |
| 305 | atomic_t mm_users; /* How many users with user space? */ | 306 | atomic_t mm_users; /* How many users with user space? */ |
| @@ -697,12 +698,9 @@ struct task_struct { | |||
| 697 | 698 | ||
| 698 | int lock_depth; /* BKL lock depth */ | 699 | int lock_depth; /* BKL lock depth */ |
| 699 | 700 | ||
| 700 | #if defined(CONFIG_SMP) | 701 | #if defined(CONFIG_SMP) && defined(__ARCH_WANT_UNLOCKED_CTXSW) |
| 701 | int last_waker_cpu; /* CPU that last woke this task up */ | ||
| 702 | #if defined(__ARCH_WANT_UNLOCKED_CTXSW) | ||
| 703 | int oncpu; | 702 | int oncpu; |
| 704 | #endif | 703 | #endif |
| 705 | #endif | ||
| 706 | int prio, static_prio; | 704 | int prio, static_prio; |
| 707 | struct list_head run_list; | 705 | struct list_head run_list; |
| 708 | prio_array_t *array; | 706 | prio_array_t *array; |
| @@ -894,7 +892,6 @@ static inline int pid_alive(struct task_struct *p) | |||
| 894 | } | 892 | } |
| 895 | 893 | ||
| 896 | extern void free_task(struct task_struct *tsk); | 894 | extern void free_task(struct task_struct *tsk); |
| 897 | extern void __put_task_struct(struct task_struct *tsk); | ||
| 898 | #define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0) | 895 | #define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0) |
| 899 | 896 | ||
| 900 | extern void __put_task_struct_cb(struct rcu_head *rhp); | 897 | extern void __put_task_struct_cb(struct rcu_head *rhp); |
| @@ -1098,7 +1095,7 @@ extern struct sigqueue *sigqueue_alloc(void); | |||
| 1098 | extern void sigqueue_free(struct sigqueue *); | 1095 | extern void sigqueue_free(struct sigqueue *); |
| 1099 | extern int send_sigqueue(int, struct sigqueue *, struct task_struct *); | 1096 | extern int send_sigqueue(int, struct sigqueue *, struct task_struct *); |
| 1100 | extern int send_group_sigqueue(int, struct sigqueue *, struct task_struct *); | 1097 | extern int send_group_sigqueue(int, struct sigqueue *, struct task_struct *); |
| 1101 | extern int do_sigaction(int, const struct k_sigaction *, struct k_sigaction *); | 1098 | extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *); |
| 1102 | extern int do_sigaltstack(const stack_t __user *, stack_t __user *, unsigned long); | 1099 | extern int do_sigaltstack(const stack_t __user *, stack_t __user *, unsigned long); |
| 1103 | 1100 | ||
| 1104 | /* These can be the second arg to send_sig_info/send_group_sig_info. */ | 1101 | /* These can be the second arg to send_sig_info/send_group_sig_info. */ |
diff --git a/include/linux/security.h b/include/linux/security.h index bb1da86747c7..7cbef482e13a 100644 --- a/include/linux/security.h +++ b/include/linux/security.h | |||
| @@ -1499,15 +1499,11 @@ static inline void security_sb_post_pivotroot (struct nameidata *old_nd, | |||
| 1499 | 1499 | ||
| 1500 | static inline int security_inode_alloc (struct inode *inode) | 1500 | static inline int security_inode_alloc (struct inode *inode) |
| 1501 | { | 1501 | { |
| 1502 | if (unlikely (IS_PRIVATE (inode))) | ||
| 1503 | return 0; | ||
| 1504 | return security_ops->inode_alloc_security (inode); | 1502 | return security_ops->inode_alloc_security (inode); |
| 1505 | } | 1503 | } |
| 1506 | 1504 | ||
| 1507 | static inline void security_inode_free (struct inode *inode) | 1505 | static inline void security_inode_free (struct inode *inode) |
| 1508 | { | 1506 | { |
| 1509 | if (unlikely (IS_PRIVATE (inode))) | ||
| 1510 | return; | ||
| 1511 | security_ops->inode_free_security (inode); | 1507 | security_ops->inode_free_security (inode); |
| 1512 | } | 1508 | } |
| 1513 | 1509 | ||
diff --git a/include/linux/serial_reg.h b/include/linux/serial_reg.h index 6a2bb955844b..3c8a6aa77415 100644 --- a/include/linux/serial_reg.h +++ b/include/linux/serial_reg.h | |||
| @@ -247,10 +247,10 @@ | |||
| 247 | #define UART_CTR 0xFF | 247 | #define UART_CTR 0xFF |
| 248 | 248 | ||
| 249 | /* | 249 | /* |
| 250 | * The 16C950 Additional Control Reigster | 250 | * The 16C950 Additional Control Register |
| 251 | */ | 251 | */ |
| 252 | #define UART_ACR_RXDIS 0x01 /* Receiver disable */ | 252 | #define UART_ACR_RXDIS 0x01 /* Receiver disable */ |
| 253 | #define UART_ACR_TXDIS 0x02 /* Receiver disable */ | 253 | #define UART_ACR_TXDIS 0x02 /* Transmitter disable */ |
| 254 | #define UART_ACR_DSRFC 0x04 /* DSR Flow Control */ | 254 | #define UART_ACR_DSRFC 0x04 /* DSR Flow Control */ |
| 255 | #define UART_ACR_TLENB 0x20 /* 950 trigger levels enable */ | 255 | #define UART_ACR_TLENB 0x20 /* 950 trigger levels enable */ |
| 256 | #define UART_ACR_ICRRD 0x40 /* ICR Read enable */ | 256 | #define UART_ACR_ICRRD 0x40 /* ICR Read enable */ |
diff --git a/include/linux/smp.h b/include/linux/smp.h index 9dfa3ee769ae..44153fdf73fc 100644 --- a/include/linux/smp.h +++ b/include/linux/smp.h | |||
| @@ -17,7 +17,6 @@ extern void cpu_idle(void); | |||
| 17 | #include <linux/compiler.h> | 17 | #include <linux/compiler.h> |
| 18 | #include <linux/thread_info.h> | 18 | #include <linux/thread_info.h> |
| 19 | #include <asm/smp.h> | 19 | #include <asm/smp.h> |
| 20 | #include <asm/bug.h> | ||
| 21 | 20 | ||
| 22 | /* | 21 | /* |
| 23 | * main cross-CPU interfaces, handles INIT, TLB flush, STOP, etc. | 22 | * main cross-CPU interfaces, handles INIT, TLB flush, STOP, etc. |
diff --git a/include/linux/suspend.h b/include/linux/suspend.h index 43bcd13eb1ec..37c1c76fd547 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h | |||
| @@ -42,13 +42,21 @@ extern void mark_free_pages(struct zone *zone); | |||
| 42 | #ifdef CONFIG_PM | 42 | #ifdef CONFIG_PM |
| 43 | /* kernel/power/swsusp.c */ | 43 | /* kernel/power/swsusp.c */ |
| 44 | extern int software_suspend(void); | 44 | extern int software_suspend(void); |
| 45 | |||
| 46 | #if defined(CONFIG_VT) && defined(CONFIG_VT_CONSOLE) | ||
| 47 | extern int pm_prepare_console(void); | ||
| 48 | extern void pm_restore_console(void); | ||
| 49 | #else | ||
| 50 | static inline int pm_prepare_console(void) { return 0; } | ||
| 51 | static inline void pm_restore_console(void) {} | ||
| 52 | #endif /* defined(CONFIG_VT) && defined(CONFIG_VT_CONSOLE) */ | ||
| 45 | #else | 53 | #else |
| 46 | static inline int software_suspend(void) | 54 | static inline int software_suspend(void) |
| 47 | { | 55 | { |
| 48 | printk("Warning: fake suspend called\n"); | 56 | printk("Warning: fake suspend called\n"); |
| 49 | return -EPERM; | 57 | return -EPERM; |
| 50 | } | 58 | } |
| 51 | #endif | 59 | #endif /* CONFIG_PM */ |
| 52 | 60 | ||
| 53 | #ifdef CONFIG_SUSPEND_SMP | 61 | #ifdef CONFIG_SUSPEND_SMP |
| 54 | extern void disable_nonboot_cpus(void); | 62 | extern void disable_nonboot_cpus(void); |
diff --git a/include/linux/swap.h b/include/linux/swap.h index f3e17d5963c3..d572b19afb7d 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h | |||
| @@ -147,7 +147,7 @@ struct swap_list_t { | |||
| 147 | #define vm_swap_full() (nr_swap_pages*2 < total_swap_pages) | 147 | #define vm_swap_full() (nr_swap_pages*2 < total_swap_pages) |
| 148 | 148 | ||
| 149 | /* linux/mm/oom_kill.c */ | 149 | /* linux/mm/oom_kill.c */ |
| 150 | extern void out_of_memory(gfp_t gfp_mask, int order); | 150 | extern void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, int order); |
| 151 | 151 | ||
| 152 | /* linux/mm/memory.c */ | 152 | /* linux/mm/memory.c */ |
| 153 | extern void swapin_readahead(swp_entry_t, unsigned long, struct vm_area_struct *); | 153 | extern void swapin_readahead(swp_entry_t, unsigned long, struct vm_area_struct *); |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 3877209d23c3..b9ea44ac0ddb 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -543,7 +543,7 @@ asmlinkage long sys_unlinkat(int dfd, const char __user * pathname, int flag); | |||
| 543 | asmlinkage long sys_symlinkat(const char __user * oldname, | 543 | asmlinkage long sys_symlinkat(const char __user * oldname, |
| 544 | int newdfd, const char __user * newname); | 544 | int newdfd, const char __user * newname); |
| 545 | asmlinkage long sys_linkat(int olddfd, const char __user *oldname, | 545 | asmlinkage long sys_linkat(int olddfd, const char __user *oldname, |
| 546 | int newdfd, const char __user *newname); | 546 | int newdfd, const char __user *newname, int flags); |
| 547 | asmlinkage long sys_renameat(int olddfd, const char __user * oldname, | 547 | asmlinkage long sys_renameat(int olddfd, const char __user * oldname, |
| 548 | int newdfd, const char __user * newname); | 548 | int newdfd, const char __user * newname); |
| 549 | asmlinkage long sys_futimesat(int dfd, char __user *filename, | 549 | asmlinkage long sys_futimesat(int dfd, char __user *filename, |
| @@ -557,6 +557,8 @@ asmlinkage long sys_openat(int dfd, const char __user *filename, int flags, | |||
| 557 | int mode); | 557 | int mode); |
| 558 | asmlinkage long sys_newfstatat(int dfd, char __user *filename, | 558 | asmlinkage long sys_newfstatat(int dfd, char __user *filename, |
| 559 | struct stat __user *statbuf, int flag); | 559 | struct stat __user *statbuf, int flag); |
| 560 | asmlinkage long sys_fstatat64(int dfd, char __user *filename, | ||
| 561 | struct stat64 __user *statbuf, int flag); | ||
| 560 | asmlinkage long sys_readlinkat(int dfd, const char __user *path, char __user *buf, | 562 | asmlinkage long sys_readlinkat(int dfd, const char __user *path, char __user *buf, |
| 561 | int bufsiz); | 563 | int bufsiz); |
| 562 | asmlinkage long compat_sys_futimesat(unsigned int dfd, char __user *filename, | 564 | asmlinkage long compat_sys_futimesat(unsigned int dfd, char __user *filename, |
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index 32a4139c4ad8..bac61db26456 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h | |||
| @@ -146,6 +146,8 @@ enum | |||
| 146 | KERN_RANDOMIZE=68, /* int: randomize virtual address space */ | 146 | KERN_RANDOMIZE=68, /* int: randomize virtual address space */ |
| 147 | KERN_SETUID_DUMPABLE=69, /* int: behaviour of dumps for setuid core */ | 147 | KERN_SETUID_DUMPABLE=69, /* int: behaviour of dumps for setuid core */ |
| 148 | KERN_SPIN_RETRY=70, /* int: number of spinlock retries */ | 148 | KERN_SPIN_RETRY=70, /* int: number of spinlock retries */ |
| 149 | KERN_ACPI_VIDEO_FLAGS=71, /* int: flags for setting up video after ACPI sleep */ | ||
| 150 | KERN_IA64_UNALIGNED=72, /* int: ia64 unaligned userland trap enable */ | ||
| 149 | }; | 151 | }; |
| 150 | 152 | ||
| 151 | 153 | ||
diff --git a/include/linux/time.h b/include/linux/time.h index 7b4dc36532bb..d9cdba54b789 100644 --- a/include/linux/time.h +++ b/include/linux/time.h | |||
| @@ -33,11 +33,34 @@ struct timezone { | |||
| 33 | #define NSEC_PER_SEC 1000000000L | 33 | #define NSEC_PER_SEC 1000000000L |
| 34 | #define NSEC_PER_USEC 1000L | 34 | #define NSEC_PER_USEC 1000L |
| 35 | 35 | ||
| 36 | static __inline__ int timespec_equal(struct timespec *a, struct timespec *b) | 36 | static inline int timespec_equal(struct timespec *a, struct timespec *b) |
| 37 | { | 37 | { |
| 38 | return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec); | 38 | return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec); |
| 39 | } | 39 | } |
| 40 | 40 | ||
| 41 | /* | ||
| 42 | * lhs < rhs: return <0 | ||
| 43 | * lhs == rhs: return 0 | ||
| 44 | * lhs > rhs: return >0 | ||
| 45 | */ | ||
| 46 | static inline int timespec_compare(struct timespec *lhs, struct timespec *rhs) | ||
| 47 | { | ||
| 48 | if (lhs->tv_sec < rhs->tv_sec) | ||
| 49 | return -1; | ||
| 50 | if (lhs->tv_sec > rhs->tv_sec) | ||
| 51 | return 1; | ||
| 52 | return lhs->tv_nsec - rhs->tv_nsec; | ||
| 53 | } | ||
| 54 | |||
| 55 | static inline int timeval_compare(struct timeval *lhs, struct timeval *rhs) | ||
| 56 | { | ||
| 57 | if (lhs->tv_sec < rhs->tv_sec) | ||
| 58 | return -1; | ||
| 59 | if (lhs->tv_sec > rhs->tv_sec) | ||
| 60 | return 1; | ||
| 61 | return lhs->tv_usec - rhs->tv_usec; | ||
| 62 | } | ||
| 63 | |||
| 41 | extern unsigned long mktime(const unsigned int year, const unsigned int mon, | 64 | extern unsigned long mktime(const unsigned int year, const unsigned int mon, |
| 42 | const unsigned int day, const unsigned int hour, | 65 | const unsigned int day, const unsigned int hour, |
| 43 | const unsigned int min, const unsigned int sec); | 66 | const unsigned int min, const unsigned int sec); |
diff --git a/include/linux/timex.h b/include/linux/timex.h index 04a4a8cb4ed3..b7ca1204e42a 100644 --- a/include/linux/timex.h +++ b/include/linux/timex.h | |||
| @@ -345,6 +345,9 @@ time_interpolator_reset(void) | |||
| 345 | 345 | ||
| 346 | #endif /* !CONFIG_TIME_INTERPOLATION */ | 346 | #endif /* !CONFIG_TIME_INTERPOLATION */ |
| 347 | 347 | ||
| 348 | /* Returns how long ticks are at present, in ns / 2^(SHIFT_SCALE-10). */ | ||
| 349 | extern u64 current_tick_length(void); | ||
| 350 | |||
| 348 | #endif /* KERNEL */ | 351 | #endif /* KERNEL */ |
| 349 | 352 | ||
| 350 | #endif /* LINUX_TIMEX_H */ | 353 | #endif /* LINUX_TIMEX_H */ |
diff --git a/include/linux/tty.h b/include/linux/tty.h index a7bd3b4558d2..f45cd74e6f24 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h | |||
| @@ -58,6 +58,8 @@ struct tty_buffer { | |||
| 58 | int used; | 58 | int used; |
| 59 | int size; | 59 | int size; |
| 60 | int active; | 60 | int active; |
| 61 | int commit; | ||
| 62 | int read; | ||
| 61 | /* Data points here */ | 63 | /* Data points here */ |
| 62 | unsigned long data[0]; | 64 | unsigned long data[0]; |
| 63 | }; | 65 | }; |
diff --git a/include/linux/tty_flip.h b/include/linux/tty_flip.h index 82961eb19888..222faf97d5f9 100644 --- a/include/linux/tty_flip.h +++ b/include/linux/tty_flip.h | |||
| @@ -29,8 +29,10 @@ _INLINE_ void tty_schedule_flip(struct tty_struct *tty) | |||
| 29 | { | 29 | { |
| 30 | unsigned long flags; | 30 | unsigned long flags; |
| 31 | spin_lock_irqsave(&tty->buf.lock, flags); | 31 | spin_lock_irqsave(&tty->buf.lock, flags); |
| 32 | if (tty->buf.tail != NULL) | 32 | if (tty->buf.tail != NULL) { |
| 33 | tty->buf.tail->active = 0; | 33 | tty->buf.tail->active = 0; |
| 34 | tty->buf.tail->commit = tty->buf.tail->used; | ||
| 35 | } | ||
| 34 | spin_unlock_irqrestore(&tty->buf.lock, flags); | 36 | spin_unlock_irqrestore(&tty->buf.lock, flags); |
| 35 | schedule_delayed_work(&tty->buf.work, 1); | 37 | schedule_delayed_work(&tty->buf.work, 1); |
| 36 | } | 38 | } |
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 6f6c69777648..5208b12d5550 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h | |||
| @@ -549,7 +549,7 @@ struct v4l2_framebuffer | |||
| 549 | struct v4l2_clip | 549 | struct v4l2_clip |
| 550 | { | 550 | { |
| 551 | struct v4l2_rect c; | 551 | struct v4l2_rect c; |
| 552 | struct v4l2_clip *next; | 552 | struct v4l2_clip __user *next; |
| 553 | }; | 553 | }; |
| 554 | 554 | ||
| 555 | struct v4l2_window | 555 | struct v4l2_window |
| @@ -629,6 +629,7 @@ typedef __u64 v4l2_std_id; | |||
| 629 | #define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000) | 629 | #define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000) |
| 630 | #define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000) | 630 | #define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000) |
| 631 | #define V4L2_STD_NTSC_443 ((v4l2_std_id)0x00004000) | 631 | #define V4L2_STD_NTSC_443 ((v4l2_std_id)0x00004000) |
| 632 | #define V4L2_STD_NTSC_M_KR ((v4l2_std_id)0x00008000) | ||
| 632 | 633 | ||
| 633 | #define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000) | 634 | #define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000) |
| 634 | #define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000) | 635 | #define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000) |
| @@ -661,7 +662,8 @@ typedef __u64 v4l2_std_id; | |||
| 661 | V4L2_STD_PAL_H |\ | 662 | V4L2_STD_PAL_H |\ |
| 662 | V4L2_STD_PAL_I) | 663 | V4L2_STD_PAL_I) |
| 663 | #define V4L2_STD_NTSC (V4L2_STD_NTSC_M |\ | 664 | #define V4L2_STD_NTSC (V4L2_STD_NTSC_M |\ |
| 664 | V4L2_STD_NTSC_M_JP) | 665 | V4L2_STD_NTSC_M_JP |\ |
| 666 | V4L2_STD_NTSC_M_KR) | ||
| 665 | #define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\ | 667 | #define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\ |
| 666 | V4L2_STD_SECAM_K |\ | 668 | V4L2_STD_SECAM_K |\ |
| 667 | V4L2_STD_SECAM_K1) | 669 | V4L2_STD_SECAM_K1) |
