diff options
Diffstat (limited to 'include')
81 files changed, 797 insertions, 268 deletions
diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h index fcdcb5d5c995..d494001b1226 100644 --- a/include/asm-generic/gpio.h +++ b/include/asm-generic/gpio.h | |||
| @@ -170,16 +170,6 @@ extern int __gpio_cansleep(unsigned gpio); | |||
| 170 | 170 | ||
| 171 | extern int __gpio_to_irq(unsigned gpio); | 171 | extern int __gpio_to_irq(unsigned gpio); |
| 172 | 172 | ||
| 173 | #define GPIOF_DIR_OUT (0 << 0) | ||
| 174 | #define GPIOF_DIR_IN (1 << 0) | ||
| 175 | |||
| 176 | #define GPIOF_INIT_LOW (0 << 1) | ||
| 177 | #define GPIOF_INIT_HIGH (1 << 1) | ||
| 178 | |||
| 179 | #define GPIOF_IN (GPIOF_DIR_IN) | ||
| 180 | #define GPIOF_OUT_INIT_LOW (GPIOF_DIR_OUT | GPIOF_INIT_LOW) | ||
| 181 | #define GPIOF_OUT_INIT_HIGH (GPIOF_DIR_OUT | GPIOF_INIT_HIGH) | ||
| 182 | |||
| 183 | /** | 173 | /** |
| 184 | * struct gpio - a structure describing a GPIO with configuration | 174 | * struct gpio - a structure describing a GPIO with configuration |
| 185 | * @gpio: the GPIO number | 175 | * @gpio: the GPIO number |
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h index e9b8e5926bef..76bff2bff15e 100644 --- a/include/asm-generic/pgtable.h +++ b/include/asm-generic/pgtable.h | |||
| @@ -88,7 +88,7 @@ static inline pmd_t pmdp_get_and_clear(struct mm_struct *mm, | |||
| 88 | pmd_t pmd = *pmdp; | 88 | pmd_t pmd = *pmdp; |
| 89 | pmd_clear(mm, address, pmdp); | 89 | pmd_clear(mm, address, pmdp); |
| 90 | return pmd; | 90 | return pmd; |
| 91 | }) | 91 | } |
| 92 | #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ | 92 | #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ |
| 93 | #endif | 93 | #endif |
| 94 | 94 | ||
diff --git a/include/asm-generic/unistd.h b/include/asm-generic/unistd.h index ae90e0f63995..4f76959397fa 100644 --- a/include/asm-generic/unistd.h +++ b/include/asm-generic/unistd.h | |||
| @@ -683,9 +683,11 @@ __SC_COMP(__NR_clock_adjtime, sys_clock_adjtime, compat_sys_clock_adjtime) | |||
| 683 | __SYSCALL(__NR_syncfs, sys_syncfs) | 683 | __SYSCALL(__NR_syncfs, sys_syncfs) |
| 684 | #define __NR_setns 268 | 684 | #define __NR_setns 268 |
| 685 | __SYSCALL(__NR_setns, sys_setns) | 685 | __SYSCALL(__NR_setns, sys_setns) |
| 686 | #define __NR_sendmmsg 269 | ||
| 687 | __SC_COMP(__NR_sendmmsg, sys_sendmmsg, compat_sys_sendmmsg) | ||
| 686 | 688 | ||
| 687 | #undef __NR_syscalls | 689 | #undef __NR_syscalls |
| 688 | #define __NR_syscalls 269 | 690 | #define __NR_syscalls 270 |
| 689 | 691 | ||
| 690 | /* | 692 | /* |
| 691 | * All syscalls below here should go away really, | 693 | * All syscalls below here should go away really, |
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index 9573e0ce3120..33d12f87f0e0 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h | |||
| @@ -520,6 +520,8 @@ struct drm_connector { | |||
| 520 | uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER]; | 520 | uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER]; |
| 521 | uint32_t force_encoder_id; | 521 | uint32_t force_encoder_id; |
| 522 | struct drm_encoder *encoder; /* currently active encoder */ | 522 | struct drm_encoder *encoder; /* currently active encoder */ |
| 523 | |||
| 524 | int null_edid_counter; /* needed to workaround some HW bugs where we get all 0s */ | ||
| 523 | }; | 525 | }; |
| 524 | 526 | ||
| 525 | /** | 527 | /** |
diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h index f04b2a3b0f49..e08f344c6cff 100644 --- a/include/drm/drm_pciids.h +++ b/include/drm/drm_pciids.h | |||
| @@ -467,6 +467,17 @@ | |||
| 467 | {0x1002, 0x9614, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | 467 | {0x1002, 0x9614, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
| 468 | {0x1002, 0x9615, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | 468 | {0x1002, 0x9615, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
| 469 | {0x1002, 0x9616, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | 469 | {0x1002, 0x9616, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
| 470 | {0x1002, 0x9640, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 471 | {0x1002, 0x9641, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 472 | {0x1002, 0x9642, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO2|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 473 | {0x1002, 0x9643, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO2|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 474 | {0x1002, 0x9644, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO2|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 475 | {0x1002, 0x9645, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO2|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 476 | {0x1002, 0x9647, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP},\ | ||
| 477 | {0x1002, 0x9648, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP},\ | ||
| 478 | {0x1002, 0x964a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | ||
| 479 | {0x1002, 0x964e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP},\ | ||
| 480 | {0x1002, 0x964f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP},\ | ||
| 470 | {0x1002, 0x9710, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS880|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | 481 | {0x1002, 0x9710, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS880|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
| 471 | {0x1002, 0x9711, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS880|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | 482 | {0x1002, 0x9711, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS880|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
| 472 | {0x1002, 0x9712, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS880|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | 483 | {0x1002, 0x9712, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS880|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
diff --git a/include/linux/amba/serial.h b/include/linux/amba/serial.h index 5479fdc849e9..514ed45c462e 100644 --- a/include/linux/amba/serial.h +++ b/include/linux/amba/serial.h | |||
| @@ -201,6 +201,9 @@ struct amba_pl011_data { | |||
| 201 | bool (*dma_filter)(struct dma_chan *chan, void *filter_param); | 201 | bool (*dma_filter)(struct dma_chan *chan, void *filter_param); |
| 202 | void *dma_rx_param; | 202 | void *dma_rx_param; |
| 203 | void *dma_tx_param; | 203 | void *dma_tx_param; |
| 204 | void (*init) (void); | ||
| 205 | void (*exit) (void); | ||
| 206 | void (*reset) (void); | ||
| 204 | }; | 207 | }; |
| 205 | #endif | 208 | #endif |
| 206 | 209 | ||
diff --git a/include/linux/basic_mmio_gpio.h b/include/linux/basic_mmio_gpio.h index 1ae12710d732..98999cf107ce 100644 --- a/include/linux/basic_mmio_gpio.h +++ b/include/linux/basic_mmio_gpio.h | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | #include <linux/gpio.h> | 16 | #include <linux/gpio.h> |
| 17 | #include <linux/types.h> | 17 | #include <linux/types.h> |
| 18 | #include <linux/compiler.h> | 18 | #include <linux/compiler.h> |
| 19 | #include <linux/spinlock_types.h> | ||
| 19 | 20 | ||
| 20 | struct bgpio_pdata { | 21 | struct bgpio_pdata { |
| 21 | int base; | 22 | int base; |
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h index 2a7cea53ca0d..6395692b2e7a 100644 --- a/include/linux/blk_types.h +++ b/include/linux/blk_types.h | |||
| @@ -167,7 +167,7 @@ enum rq_flag_bits { | |||
| 167 | (REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT | REQ_FAILFAST_DRIVER) | 167 | (REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT | REQ_FAILFAST_DRIVER) |
| 168 | #define REQ_COMMON_MASK \ | 168 | #define REQ_COMMON_MASK \ |
| 169 | (REQ_WRITE | REQ_FAILFAST_MASK | REQ_SYNC | REQ_META | REQ_DISCARD | \ | 169 | (REQ_WRITE | REQ_FAILFAST_MASK | REQ_SYNC | REQ_META | REQ_DISCARD | \ |
| 170 | REQ_NOIDLE | REQ_FLUSH | REQ_FUA) | 170 | REQ_NOIDLE | REQ_FLUSH | REQ_FUA | REQ_SECURE) |
| 171 | #define REQ_CLONE_MASK REQ_COMMON_MASK | 171 | #define REQ_CLONE_MASK REQ_COMMON_MASK |
| 172 | 172 | ||
| 173 | #define REQ_RAHEAD (1 << __REQ_RAHEAD) | 173 | #define REQ_RAHEAD (1 << __REQ_RAHEAD) |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index ae9091a68480..1a23722e8878 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -1282,8 +1282,8 @@ queue_max_integrity_segments(struct request_queue *q) | |||
| 1282 | #define blk_get_integrity(a) (0) | 1282 | #define blk_get_integrity(a) (0) |
| 1283 | #define blk_integrity_compare(a, b) (0) | 1283 | #define blk_integrity_compare(a, b) (0) |
| 1284 | #define blk_integrity_register(a, b) (0) | 1284 | #define blk_integrity_register(a, b) (0) |
| 1285 | #define blk_integrity_unregister(a) do { } while (0); | 1285 | #define blk_integrity_unregister(a) do { } while (0) |
| 1286 | #define blk_queue_max_integrity_segments(a, b) do { } while (0); | 1286 | #define blk_queue_max_integrity_segments(a, b) do { } while (0) |
| 1287 | #define queue_max_integrity_segments(a) (0) | 1287 | #define queue_max_integrity_segments(a) (0) |
| 1288 | #define blk_integrity_merge_rq(a, b, c) (0) | 1288 | #define blk_integrity_merge_rq(a, b, c) (0) |
| 1289 | #define blk_integrity_merge_bio(a, b, c) (0) | 1289 | #define blk_integrity_merge_bio(a, b, c) (0) |
diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h index b22fb0d3db0f..8c7c2de7631a 100644 --- a/include/linux/blktrace_api.h +++ b/include/linux/blktrace_api.h | |||
| @@ -169,7 +169,8 @@ extern void blk_trace_shutdown(struct request_queue *); | |||
| 169 | extern int do_blk_trace_setup(struct request_queue *q, char *name, | 169 | extern int do_blk_trace_setup(struct request_queue *q, char *name, |
| 170 | dev_t dev, struct block_device *bdev, | 170 | dev_t dev, struct block_device *bdev, |
| 171 | struct blk_user_trace_setup *buts); | 171 | struct blk_user_trace_setup *buts); |
| 172 | extern void __trace_note_message(struct blk_trace *, const char *fmt, ...); | 172 | extern __attribute__((format(printf, 2, 3))) |
| 173 | void __trace_note_message(struct blk_trace *, const char *fmt, ...); | ||
| 173 | 174 | ||
| 174 | /** | 175 | /** |
| 175 | * blk_add_trace_msg - Add a (simple) message to the blktrace stream | 176 | * blk_add_trace_msg - Add a (simple) message to the blktrace stream |
diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h index d4646b48dc4a..18a1baf31f2d 100644 --- a/include/linux/clocksource.h +++ b/include/linux/clocksource.h | |||
| @@ -188,6 +188,7 @@ struct clocksource { | |||
| 188 | #ifdef CONFIG_CLOCKSOURCE_WATCHDOG | 188 | #ifdef CONFIG_CLOCKSOURCE_WATCHDOG |
| 189 | /* Watchdog related data, used by the framework */ | 189 | /* Watchdog related data, used by the framework */ |
| 190 | struct list_head wd_list; | 190 | struct list_head wd_list; |
| 191 | cycle_t cs_last; | ||
| 191 | cycle_t wd_last; | 192 | cycle_t wd_last; |
| 192 | #endif | 193 | #endif |
| 193 | } ____cacheline_aligned; | 194 | } ____cacheline_aligned; |
diff --git a/include/linux/compat.h b/include/linux/compat.h index ddcb7db38e67..846bb1792572 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
| @@ -467,6 +467,8 @@ asmlinkage long compat_sys_setsockopt(int fd, int level, int optname, | |||
| 467 | char __user *optval, unsigned int optlen); | 467 | char __user *optval, unsigned int optlen); |
| 468 | asmlinkage long compat_sys_sendmsg(int fd, struct compat_msghdr __user *msg, | 468 | asmlinkage long compat_sys_sendmsg(int fd, struct compat_msghdr __user *msg, |
| 469 | unsigned flags); | 469 | unsigned flags); |
| 470 | asmlinkage long compat_sys_sendmmsg(int fd, struct compat_mmsghdr __user *mmsg, | ||
| 471 | unsigned vlen, unsigned int flags); | ||
| 470 | asmlinkage long compat_sys_recvmsg(int fd, struct compat_msghdr __user *msg, | 472 | asmlinkage long compat_sys_recvmsg(int fd, struct compat_msghdr __user *msg, |
| 471 | unsigned int flags); | 473 | unsigned int flags); |
| 472 | asmlinkage long compat_sys_recv(int fd, void __user *buf, size_t len, | 474 | asmlinkage long compat_sys_recv(int fd, void __user *buf, size_t len, |
diff --git a/include/linux/connector.h b/include/linux/connector.h index 7c60d0942adb..f696bccd48cb 100644 --- a/include/linux/connector.h +++ b/include/linux/connector.h | |||
| @@ -44,7 +44,7 @@ | |||
| 44 | #define CN_VAL_DRBD 0x1 | 44 | #define CN_VAL_DRBD 0x1 |
| 45 | #define CN_KVP_IDX 0x9 /* HyperV KVP */ | 45 | #define CN_KVP_IDX 0x9 /* HyperV KVP */ |
| 46 | 46 | ||
| 47 | #define CN_NETLINK_USERS 9 | 47 | #define CN_NETLINK_USERS 10 /* Highest index + 1 */ |
| 48 | 48 | ||
| 49 | /* | 49 | /* |
| 50 | * Maximum connector's message size. | 50 | * Maximum connector's message size. |
diff --git a/include/linux/device.h b/include/linux/device.h index c66111affca9..e4f62d8896b7 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -530,7 +530,6 @@ struct device_dma_parameters { | |||
| 530 | * @dma_mem: Internal for coherent mem override. | 530 | * @dma_mem: Internal for coherent mem override. |
| 531 | * @archdata: For arch-specific additions. | 531 | * @archdata: For arch-specific additions. |
| 532 | * @of_node: Associated device tree node. | 532 | * @of_node: Associated device tree node. |
| 533 | * @of_match: Matching of_device_id from driver. | ||
| 534 | * @devt: For creating the sysfs "dev". | 533 | * @devt: For creating the sysfs "dev". |
| 535 | * @devres_lock: Spinlock to protect the resource of the device. | 534 | * @devres_lock: Spinlock to protect the resource of the device. |
| 536 | * @devres_head: The resources list of the device. | 535 | * @devres_head: The resources list of the device. |
| @@ -654,13 +653,13 @@ static inline int device_is_registered(struct device *dev) | |||
| 654 | 653 | ||
| 655 | static inline void device_enable_async_suspend(struct device *dev) | 654 | static inline void device_enable_async_suspend(struct device *dev) |
| 656 | { | 655 | { |
| 657 | if (!dev->power.in_suspend) | 656 | if (!dev->power.is_prepared) |
| 658 | dev->power.async_suspend = true; | 657 | dev->power.async_suspend = true; |
| 659 | } | 658 | } |
| 660 | 659 | ||
| 661 | static inline void device_disable_async_suspend(struct device *dev) | 660 | static inline void device_disable_async_suspend(struct device *dev) |
| 662 | { | 661 | { |
| 663 | if (!dev->power.in_suspend) | 662 | if (!dev->power.is_prepared) |
| 664 | dev->power.async_suspend = false; | 663 | dev->power.async_suspend = false; |
| 665 | } | 664 | } |
| 666 | 665 | ||
diff --git a/include/linux/device_cgroup.h b/include/linux/device_cgroup.h index 0b0d9c39ed67..7aad1f440867 100644 --- a/include/linux/device_cgroup.h +++ b/include/linux/device_cgroup.h | |||
| @@ -2,8 +2,16 @@ | |||
| 2 | #include <linux/fs.h> | 2 | #include <linux/fs.h> |
| 3 | 3 | ||
| 4 | #ifdef CONFIG_CGROUP_DEVICE | 4 | #ifdef CONFIG_CGROUP_DEVICE |
| 5 | extern int devcgroup_inode_permission(struct inode *inode, int mask); | 5 | extern int __devcgroup_inode_permission(struct inode *inode, int mask); |
| 6 | extern int devcgroup_inode_mknod(int mode, dev_t dev); | 6 | extern int devcgroup_inode_mknod(int mode, dev_t dev); |
| 7 | static inline int devcgroup_inode_permission(struct inode *inode, int mask) | ||
| 8 | { | ||
| 9 | if (likely(!inode->i_rdev)) | ||
| 10 | return 0; | ||
| 11 | if (!S_ISBLK(inode->i_mode) && !S_ISCHR(inode->i_mode)) | ||
| 12 | return 0; | ||
| 13 | return __devcgroup_inode_permission(inode, mask); | ||
| 14 | } | ||
| 7 | #else | 15 | #else |
| 8 | static inline int devcgroup_inode_permission(struct inode *inode, int mask) | 16 | static inline int devcgroup_inode_permission(struct inode *inode, int mask) |
| 9 | { return 0; } | 17 | { return 0; } |
diff --git a/include/linux/dma_remapping.h b/include/linux/dma_remapping.h index 5619f8522738..bbd8661b3473 100644 --- a/include/linux/dma_remapping.h +++ b/include/linux/dma_remapping.h | |||
| @@ -9,8 +9,12 @@ | |||
| 9 | #define VTD_PAGE_MASK (((u64)-1) << VTD_PAGE_SHIFT) | 9 | #define VTD_PAGE_MASK (((u64)-1) << VTD_PAGE_SHIFT) |
| 10 | #define VTD_PAGE_ALIGN(addr) (((addr) + VTD_PAGE_SIZE - 1) & VTD_PAGE_MASK) | 10 | #define VTD_PAGE_ALIGN(addr) (((addr) + VTD_PAGE_SIZE - 1) & VTD_PAGE_MASK) |
| 11 | 11 | ||
| 12 | #define VTD_STRIDE_SHIFT (9) | ||
| 13 | #define VTD_STRIDE_MASK (((u64)-1) << VTD_STRIDE_SHIFT) | ||
| 14 | |||
| 12 | #define DMA_PTE_READ (1) | 15 | #define DMA_PTE_READ (1) |
| 13 | #define DMA_PTE_WRITE (2) | 16 | #define DMA_PTE_WRITE (2) |
| 17 | #define DMA_PTE_LARGE_PAGE (1 << 7) | ||
| 14 | #define DMA_PTE_SNP (1 << 11) | 18 | #define DMA_PTE_SNP (1 << 11) |
| 15 | 19 | ||
| 16 | #define CONTEXT_TT_MULTI_LEVEL 0 | 20 | #define CONTEXT_TT_MULTI_LEVEL 0 |
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index c6a850ab2ec5..439b173c5882 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h | |||
| @@ -268,7 +268,7 @@ struct ethtool_pauseparam { | |||
| 268 | __u32 cmd; /* ETHTOOL_{G,S}PAUSEPARAM */ | 268 | __u32 cmd; /* ETHTOOL_{G,S}PAUSEPARAM */ |
| 269 | 269 | ||
| 270 | /* If the link is being auto-negotiated (via ethtool_cmd.autoneg | 270 | /* If the link is being auto-negotiated (via ethtool_cmd.autoneg |
| 271 | * being true) the user may set 'autonet' here non-zero to have the | 271 | * being true) the user may set 'autoneg' here non-zero to have the |
| 272 | * pause parameters be auto-negotiated too. In such a case, the | 272 | * pause parameters be auto-negotiated too. In such a case, the |
| 273 | * {rx,tx}_pause values below determine what capabilities are | 273 | * {rx,tx}_pause values below determine what capabilities are |
| 274 | * advertised. | 274 | * advertised. |
| @@ -811,7 +811,7 @@ bool ethtool_invalid_flags(struct net_device *dev, u32 data, u32 supported); | |||
| 811 | * @get_tx_csum: Deprecated as redundant. Report whether transmit checksums | 811 | * @get_tx_csum: Deprecated as redundant. Report whether transmit checksums |
| 812 | * are turned on or off. | 812 | * are turned on or off. |
| 813 | * @set_tx_csum: Deprecated in favour of generic netdev features. Turn | 813 | * @set_tx_csum: Deprecated in favour of generic netdev features. Turn |
| 814 | * transmit checksums on or off. Returns a egative error code or zero. | 814 | * transmit checksums on or off. Returns a negative error code or zero. |
| 815 | * @get_sg: Deprecated as redundant. Report whether scatter-gather is | 815 | * @get_sg: Deprecated as redundant. Report whether scatter-gather is |
| 816 | * enabled. | 816 | * enabled. |
| 817 | * @set_sg: Deprecated in favour of generic netdev features. Turn | 817 | * @set_sg: Deprecated in favour of generic netdev features. Turn |
| @@ -1087,7 +1087,7 @@ struct ethtool_ops { | |||
| 1087 | /* The following are all involved in forcing a particular link | 1087 | /* The following are all involved in forcing a particular link |
| 1088 | * mode for the device for setting things. When getting the | 1088 | * mode for the device for setting things. When getting the |
| 1089 | * devices settings, these indicate the current mode and whether | 1089 | * devices settings, these indicate the current mode and whether |
| 1090 | * it was foced up into this mode or autonegotiated. | 1090 | * it was forced up into this mode or autonegotiated. |
| 1091 | */ | 1091 | */ |
| 1092 | 1092 | ||
| 1093 | /* The forced speed, 10Mb, 100Mb, gigabit, 2.5Gb, 10GbE. */ | 1093 | /* The forced speed, 10Mb, 100Mb, gigabit, 2.5Gb, 10GbE. */ |
diff --git a/include/linux/fs.h b/include/linux/fs.h index c55d6b7cd5d6..b5b979247863 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -208,6 +208,7 @@ struct inodes_stat_t { | |||
| 208 | #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */ | 208 | #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */ |
| 209 | #define MS_I_VERSION (1<<23) /* Update inode I_version field */ | 209 | #define MS_I_VERSION (1<<23) /* Update inode I_version field */ |
| 210 | #define MS_STRICTATIME (1<<24) /* Always perform atime updates */ | 210 | #define MS_STRICTATIME (1<<24) /* Always perform atime updates */ |
| 211 | #define MS_NOSEC (1<<28) | ||
| 211 | #define MS_BORN (1<<29) | 212 | #define MS_BORN (1<<29) |
| 212 | #define MS_ACTIVE (1<<30) | 213 | #define MS_ACTIVE (1<<30) |
| 213 | #define MS_NOUSER (1<<31) | 214 | #define MS_NOUSER (1<<31) |
| @@ -638,6 +639,7 @@ struct address_space { | |||
| 638 | struct prio_tree_root i_mmap; /* tree of private and shared mappings */ | 639 | struct prio_tree_root i_mmap; /* tree of private and shared mappings */ |
| 639 | struct list_head i_mmap_nonlinear;/*list VM_NONLINEAR mappings */ | 640 | struct list_head i_mmap_nonlinear;/*list VM_NONLINEAR mappings */ |
| 640 | struct mutex i_mmap_mutex; /* protect tree, count, list */ | 641 | struct mutex i_mmap_mutex; /* protect tree, count, list */ |
| 642 | /* Protected by tree_lock together with the radix tree */ | ||
| 641 | unsigned long nrpages; /* number of total pages */ | 643 | unsigned long nrpages; /* number of total pages */ |
| 642 | pgoff_t writeback_index;/* writeback starts here */ | 644 | pgoff_t writeback_index;/* writeback starts here */ |
| 643 | const struct address_space_operations *a_ops; /* methods */ | 645 | const struct address_space_operations *a_ops; /* methods */ |
| @@ -743,9 +745,13 @@ struct inode { | |||
| 743 | 745 | ||
| 744 | spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */ | 746 | spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */ |
| 745 | unsigned int i_flags; | 747 | unsigned int i_flags; |
| 748 | unsigned long i_state; | ||
| 749 | #ifdef CONFIG_SECURITY | ||
| 750 | void *i_security; | ||
| 751 | #endif | ||
| 746 | struct mutex i_mutex; | 752 | struct mutex i_mutex; |
| 747 | 753 | ||
| 748 | unsigned long i_state; | 754 | |
| 749 | unsigned long dirtied_when; /* jiffies of first dirtying */ | 755 | unsigned long dirtied_when; /* jiffies of first dirtying */ |
| 750 | 756 | ||
| 751 | struct hlist_node i_hash; | 757 | struct hlist_node i_hash; |
| @@ -797,9 +803,6 @@ struct inode { | |||
| 797 | atomic_t i_readcount; /* struct files open RO */ | 803 | atomic_t i_readcount; /* struct files open RO */ |
| 798 | #endif | 804 | #endif |
| 799 | atomic_t i_writecount; | 805 | atomic_t i_writecount; |
| 800 | #ifdef CONFIG_SECURITY | ||
| 801 | void *i_security; | ||
| 802 | #endif | ||
| 803 | #ifdef CONFIG_FS_POSIX_ACL | 806 | #ifdef CONFIG_FS_POSIX_ACL |
| 804 | struct posix_acl *i_acl; | 807 | struct posix_acl *i_acl; |
| 805 | struct posix_acl *i_default_acl; | 808 | struct posix_acl *i_default_acl; |
| @@ -2591,7 +2594,7 @@ static inline int is_sxid(mode_t mode) | |||
| 2591 | 2594 | ||
| 2592 | static inline void inode_has_no_xattr(struct inode *inode) | 2595 | static inline void inode_has_no_xattr(struct inode *inode) |
| 2593 | { | 2596 | { |
| 2594 | if (!is_sxid(inode->i_mode)) | 2597 | if (!is_sxid(inode->i_mode) && (inode->i_sb->s_flags & MS_NOSEC)) |
| 2595 | inode->i_flags |= S_NOSEC; | 2598 | inode->i_flags |= S_NOSEC; |
| 2596 | } | 2599 | } |
| 2597 | 2600 | ||
diff --git a/include/linux/fsl-diu-fb.h b/include/linux/fsl-diu-fb.h index 781d4671415f..daa9952d2174 100644 --- a/include/linux/fsl-diu-fb.h +++ b/include/linux/fsl-diu-fb.h | |||
| @@ -24,12 +24,6 @@ | |||
| 24 | * See mpc8610fb_set_par(), map_video_memory(), and unmap_video_memory() | 24 | * See mpc8610fb_set_par(), map_video_memory(), and unmap_video_memory() |
| 25 | */ | 25 | */ |
| 26 | #define MEM_ALLOC_THRESHOLD (1024*768*4+32) | 26 | #define MEM_ALLOC_THRESHOLD (1024*768*4+32) |
| 27 | /* Minimum value that the pixel clock can be set to in pico seconds | ||
| 28 | * This is determined by platform clock/3 where the minimum platform | ||
| 29 | * clock is 533MHz. This gives 5629 pico seconds. | ||
| 30 | */ | ||
| 31 | #define MIN_PIX_CLK 5629 | ||
| 32 | #define MAX_PIX_CLK 96096 | ||
| 33 | 27 | ||
| 34 | #include <linux/types.h> | 28 | #include <linux/types.h> |
| 35 | 29 | ||
diff --git a/include/linux/genhd.h b/include/linux/genhd.h index b78956b3c2e7..300d7582006e 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h | |||
| @@ -100,6 +100,7 @@ struct hd_struct { | |||
| 100 | sector_t start_sect; | 100 | sector_t start_sect; |
| 101 | sector_t nr_sects; | 101 | sector_t nr_sects; |
| 102 | sector_t alignment_offset; | 102 | sector_t alignment_offset; |
| 103 | unsigned int discard_alignment; | ||
| 103 | struct device __dev; | 104 | struct device __dev; |
| 104 | struct kobject *holder_dir; | 105 | struct kobject *holder_dir; |
| 105 | int policy, partno; | 106 | int policy, partno; |
diff --git a/include/linux/gpio.h b/include/linux/gpio.h index 32d47e710661..17b5a0d80e42 100644 --- a/include/linux/gpio.h +++ b/include/linux/gpio.h | |||
| @@ -3,6 +3,17 @@ | |||
| 3 | 3 | ||
| 4 | /* see Documentation/gpio.txt */ | 4 | /* see Documentation/gpio.txt */ |
| 5 | 5 | ||
| 6 | /* make these flag values available regardless of GPIO kconfig options */ | ||
| 7 | #define GPIOF_DIR_OUT (0 << 0) | ||
| 8 | #define GPIOF_DIR_IN (1 << 0) | ||
| 9 | |||
| 10 | #define GPIOF_INIT_LOW (0 << 1) | ||
| 11 | #define GPIOF_INIT_HIGH (1 << 1) | ||
| 12 | |||
| 13 | #define GPIOF_IN (GPIOF_DIR_IN) | ||
| 14 | #define GPIOF_OUT_INIT_LOW (GPIOF_DIR_OUT | GPIOF_INIT_LOW) | ||
| 15 | #define GPIOF_OUT_INIT_HIGH (GPIOF_DIR_OUT | GPIOF_INIT_HIGH) | ||
| 16 | |||
| 6 | #ifdef CONFIG_GENERIC_GPIO | 17 | #ifdef CONFIG_GENERIC_GPIO |
| 7 | #include <asm/gpio.h> | 18 | #include <asm/gpio.h> |
| 8 | 19 | ||
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 51932e5acf7c..fd0dc30c9f15 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h | |||
| @@ -135,6 +135,7 @@ struct hrtimer_sleeper { | |||
| 135 | * @cpu_base: per cpu clock base | 135 | * @cpu_base: per cpu clock base |
| 136 | * @index: clock type index for per_cpu support when moving a | 136 | * @index: clock type index for per_cpu support when moving a |
| 137 | * timer to a base on another cpu. | 137 | * timer to a base on another cpu. |
| 138 | * @clockid: clock id for per_cpu support | ||
| 138 | * @active: red black tree root node for the active timers | 139 | * @active: red black tree root node for the active timers |
| 139 | * @resolution: the resolution of the clock, in nanoseconds | 140 | * @resolution: the resolution of the clock, in nanoseconds |
| 140 | * @get_time: function to retrieve the current time of the clock | 141 | * @get_time: function to retrieve the current time of the clock |
diff --git a/include/linux/i2c/adp8870.h b/include/linux/i2c/adp8870.h new file mode 100644 index 000000000000..624dceccbd5b --- /dev/null +++ b/include/linux/i2c/adp8870.h | |||
| @@ -0,0 +1,153 @@ | |||
| 1 | /* | ||
| 2 | * Definitions and platform data for Analog Devices | ||
| 3 | * Backlight drivers ADP8870 | ||
| 4 | * | ||
| 5 | * Copyright 2009-2010 Analog Devices Inc. | ||
| 6 | * | ||
| 7 | * Licensed under the GPL-2 or later. | ||
| 8 | */ | ||
| 9 | |||
| 10 | #ifndef __LINUX_I2C_ADP8870_H | ||
| 11 | #define __LINUX_I2C_ADP8870_H | ||
| 12 | |||
| 13 | #define ID_ADP8870 8870 | ||
| 14 | |||
| 15 | #define ADP8870_MAX_BRIGHTNESS 0x7F | ||
| 16 | #define FLAG_OFFT_SHIFT 8 | ||
| 17 | |||
| 18 | /* | ||
| 19 | * LEDs subdevice platform data | ||
| 20 | */ | ||
| 21 | |||
| 22 | #define ADP8870_LED_DIS_BLINK (0 << FLAG_OFFT_SHIFT) | ||
| 23 | #define ADP8870_LED_OFFT_600ms (1 << FLAG_OFFT_SHIFT) | ||
| 24 | #define ADP8870_LED_OFFT_1200ms (2 << FLAG_OFFT_SHIFT) | ||
| 25 | #define ADP8870_LED_OFFT_1800ms (3 << FLAG_OFFT_SHIFT) | ||
| 26 | |||
| 27 | #define ADP8870_LED_ONT_200ms 0 | ||
| 28 | #define ADP8870_LED_ONT_600ms 1 | ||
| 29 | #define ADP8870_LED_ONT_800ms 2 | ||
| 30 | #define ADP8870_LED_ONT_1200ms 3 | ||
| 31 | |||
| 32 | #define ADP8870_LED_D7 (7) | ||
| 33 | #define ADP8870_LED_D6 (6) | ||
| 34 | #define ADP8870_LED_D5 (5) | ||
| 35 | #define ADP8870_LED_D4 (4) | ||
| 36 | #define ADP8870_LED_D3 (3) | ||
| 37 | #define ADP8870_LED_D2 (2) | ||
| 38 | #define ADP8870_LED_D1 (1) | ||
| 39 | |||
| 40 | /* | ||
| 41 | * Backlight subdevice platform data | ||
| 42 | */ | ||
| 43 | |||
| 44 | #define ADP8870_BL_D7 (1 << 6) | ||
| 45 | #define ADP8870_BL_D6 (1 << 5) | ||
| 46 | #define ADP8870_BL_D5 (1 << 4) | ||
| 47 | #define ADP8870_BL_D4 (1 << 3) | ||
| 48 | #define ADP8870_BL_D3 (1 << 2) | ||
| 49 | #define ADP8870_BL_D2 (1 << 1) | ||
| 50 | #define ADP8870_BL_D1 (1 << 0) | ||
| 51 | |||
| 52 | #define ADP8870_FADE_T_DIS 0 /* Fade Timer Disabled */ | ||
| 53 | #define ADP8870_FADE_T_300ms 1 /* 0.3 Sec */ | ||
| 54 | #define ADP8870_FADE_T_600ms 2 | ||
| 55 | #define ADP8870_FADE_T_900ms 3 | ||
| 56 | #define ADP8870_FADE_T_1200ms 4 | ||
| 57 | #define ADP8870_FADE_T_1500ms 5 | ||
| 58 | #define ADP8870_FADE_T_1800ms 6 | ||
| 59 | #define ADP8870_FADE_T_2100ms 7 | ||
| 60 | #define ADP8870_FADE_T_2400ms 8 | ||
| 61 | #define ADP8870_FADE_T_2700ms 9 | ||
| 62 | #define ADP8870_FADE_T_3000ms 10 | ||
| 63 | #define ADP8870_FADE_T_3500ms 11 | ||
| 64 | #define ADP8870_FADE_T_4000ms 12 | ||
| 65 | #define ADP8870_FADE_T_4500ms 13 | ||
| 66 | #define ADP8870_FADE_T_5000ms 14 | ||
| 67 | #define ADP8870_FADE_T_5500ms 15 /* 5.5 Sec */ | ||
| 68 | |||
| 69 | #define ADP8870_FADE_LAW_LINEAR 0 | ||
| 70 | #define ADP8870_FADE_LAW_SQUARE 1 | ||
| 71 | #define ADP8870_FADE_LAW_CUBIC1 2 | ||
| 72 | #define ADP8870_FADE_LAW_CUBIC2 3 | ||
| 73 | |||
| 74 | #define ADP8870_BL_AMBL_FILT_80ms 0 /* Light sensor filter time */ | ||
| 75 | #define ADP8870_BL_AMBL_FILT_160ms 1 | ||
| 76 | #define ADP8870_BL_AMBL_FILT_320ms 2 | ||
| 77 | #define ADP8870_BL_AMBL_FILT_640ms 3 | ||
| 78 | #define ADP8870_BL_AMBL_FILT_1280ms 4 | ||
| 79 | #define ADP8870_BL_AMBL_FILT_2560ms 5 | ||
| 80 | #define ADP8870_BL_AMBL_FILT_5120ms 6 | ||
| 81 | #define ADP8870_BL_AMBL_FILT_10240ms 7 /* 10.24 sec */ | ||
| 82 | |||
| 83 | /* | ||
| 84 | * Blacklight current 0..30mA | ||
| 85 | */ | ||
| 86 | #define ADP8870_BL_CUR_mA(I) ((I * 127) / 30) | ||
| 87 | |||
| 88 | /* | ||
| 89 | * L2 comparator current 0..1106uA | ||
| 90 | */ | ||
| 91 | #define ADP8870_L2_COMP_CURR_uA(I) ((I * 255) / 1106) | ||
| 92 | |||
| 93 | /* | ||
| 94 | * L3 comparator current 0..551uA | ||
| 95 | */ | ||
| 96 | #define ADP8870_L3_COMP_CURR_uA(I) ((I * 255) / 551) | ||
| 97 | |||
| 98 | /* | ||
| 99 | * L4 comparator current 0..275uA | ||
| 100 | */ | ||
| 101 | #define ADP8870_L4_COMP_CURR_uA(I) ((I * 255) / 275) | ||
| 102 | |||
| 103 | /* | ||
| 104 | * L5 comparator current 0..138uA | ||
| 105 | */ | ||
| 106 | #define ADP8870_L5_COMP_CURR_uA(I) ((I * 255) / 138) | ||
| 107 | |||
| 108 | struct adp8870_backlight_platform_data { | ||
| 109 | u8 bl_led_assign; /* 1 = Backlight 0 = Individual LED */ | ||
| 110 | u8 pwm_assign; /* 1 = Enables PWM mode */ | ||
| 111 | |||
| 112 | u8 bl_fade_in; /* Backlight Fade-In Timer */ | ||
| 113 | u8 bl_fade_out; /* Backlight Fade-Out Timer */ | ||
| 114 | u8 bl_fade_law; /* fade-on/fade-off transfer characteristic */ | ||
| 115 | |||
| 116 | u8 en_ambl_sens; /* 1 = enable ambient light sensor */ | ||
| 117 | u8 abml_filt; /* Light sensor filter time */ | ||
| 118 | |||
| 119 | u8 l1_daylight_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */ | ||
| 120 | u8 l1_daylight_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */ | ||
| 121 | u8 l2_bright_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */ | ||
| 122 | u8 l2_bright_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */ | ||
| 123 | u8 l3_office_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */ | ||
| 124 | u8 l3_office_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */ | ||
| 125 | u8 l4_indoor_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */ | ||
| 126 | u8 l4_indor_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */ | ||
| 127 | u8 l5_dark_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */ | ||
| 128 | u8 l5_dark_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */ | ||
| 129 | |||
| 130 | u8 l2_trip; /* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */ | ||
| 131 | u8 l2_hyst; /* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */ | ||
| 132 | u8 l3_trip; /* use L3_COMP_CURR_uA(I) 0 <= I <= 551 uA */ | ||
| 133 | u8 l3_hyst; /* use L3_COMP_CURR_uA(I) 0 <= I <= 551 uA */ | ||
| 134 | u8 l4_trip; /* use L4_COMP_CURR_uA(I) 0 <= I <= 275 uA */ | ||
| 135 | u8 l4_hyst; /* use L4_COMP_CURR_uA(I) 0 <= I <= 275 uA */ | ||
| 136 | u8 l5_trip; /* use L5_COMP_CURR_uA(I) 0 <= I <= 138 uA */ | ||
| 137 | u8 l5_hyst; /* use L6_COMP_CURR_uA(I) 0 <= I <= 138 uA */ | ||
| 138 | |||
| 139 | /** | ||
| 140 | * Independent Current Sinks / LEDS | ||
| 141 | * Sinks not assigned to the Backlight can be exposed to | ||
| 142 | * user space using the LEDS CLASS interface | ||
| 143 | */ | ||
| 144 | |||
| 145 | int num_leds; | ||
| 146 | struct led_info *leds; | ||
| 147 | u8 led_fade_in; /* LED Fade-In Timer */ | ||
| 148 | u8 led_fade_out; /* LED Fade-Out Timer */ | ||
| 149 | u8 led_fade_law; /* fade-on/fade-off transfer characteristic */ | ||
| 150 | u8 led_on_time; | ||
| 151 | }; | ||
| 152 | |||
| 153 | #endif /* __LINUX_I2C_ADP8870_H */ | ||
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index b2eee5879883..bf56b6f78270 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
| @@ -1003,8 +1003,12 @@ struct ieee80211_ht_info { | |||
| 1003 | #define WLAN_CAPABILITY_ESS (1<<0) | 1003 | #define WLAN_CAPABILITY_ESS (1<<0) |
| 1004 | #define WLAN_CAPABILITY_IBSS (1<<1) | 1004 | #define WLAN_CAPABILITY_IBSS (1<<1) |
| 1005 | 1005 | ||
| 1006 | /* A mesh STA sets the ESS and IBSS capability bits to zero */ | 1006 | /* |
| 1007 | #define WLAN_CAPABILITY_IS_MBSS(cap) \ | 1007 | * A mesh STA sets the ESS and IBSS capability bits to zero. |
| 1008 | * however, this holds true for p2p probe responses (in the p2p_find | ||
| 1009 | * phase) as well. | ||
| 1010 | */ | ||
| 1011 | #define WLAN_CAPABILITY_IS_STA_BSS(cap) \ | ||
| 1008 | (!((cap) & (WLAN_CAPABILITY_ESS | WLAN_CAPABILITY_IBSS))) | 1012 | (!((cap) & (WLAN_CAPABILITY_ESS | WLAN_CAPABILITY_IBSS))) |
| 1009 | 1013 | ||
| 1010 | #define WLAN_CAPABILITY_CF_POLLABLE (1<<2) | 1014 | #define WLAN_CAPABILITY_CF_POLLABLE (1<<2) |
diff --git a/include/linux/if_packet.h b/include/linux/if_packet.h index 72bfa5a034dd..7b318630139f 100644 --- a/include/linux/if_packet.h +++ b/include/linux/if_packet.h | |||
| @@ -62,6 +62,7 @@ struct tpacket_auxdata { | |||
| 62 | __u16 tp_mac; | 62 | __u16 tp_mac; |
| 63 | __u16 tp_net; | 63 | __u16 tp_net; |
| 64 | __u16 tp_vlan_tci; | 64 | __u16 tp_vlan_tci; |
| 65 | __u16 tp_padding; | ||
| 65 | }; | 66 | }; |
| 66 | 67 | ||
| 67 | /* Rx ring - header status */ | 68 | /* Rx ring - header status */ |
| @@ -70,6 +71,7 @@ struct tpacket_auxdata { | |||
| 70 | #define TP_STATUS_COPY 0x2 | 71 | #define TP_STATUS_COPY 0x2 |
| 71 | #define TP_STATUS_LOSING 0x4 | 72 | #define TP_STATUS_LOSING 0x4 |
| 72 | #define TP_STATUS_CSUMNOTREADY 0x8 | 73 | #define TP_STATUS_CSUMNOTREADY 0x8 |
| 74 | #define TP_STATUS_VLAN_VALID 0x10 /* auxdata has valid tp_vlan_tci */ | ||
| 73 | 75 | ||
| 74 | /* Tx ring - header status */ | 76 | /* Tx ring - header status */ |
| 75 | #define TP_STATUS_AVAILABLE 0x0 | 77 | #define TP_STATUS_AVAILABLE 0x0 |
| @@ -100,6 +102,7 @@ struct tpacket2_hdr { | |||
| 100 | __u32 tp_sec; | 102 | __u32 tp_sec; |
| 101 | __u32 tp_nsec; | 103 | __u32 tp_nsec; |
| 102 | __u16 tp_vlan_tci; | 104 | __u16 tp_vlan_tci; |
| 105 | __u16 tp_padding; | ||
| 103 | }; | 106 | }; |
| 104 | 107 | ||
| 105 | #define TPACKET2_HDRLEN (TPACKET_ALIGN(sizeof(struct tpacket2_hdr)) + sizeof(struct sockaddr_ll)) | 108 | #define TPACKET2_HDRLEN (TPACKET_ALIGN(sizeof(struct tpacket2_hdr)) + sizeof(struct sockaddr_ll)) |
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h index dc01681fbb42..affa27380b72 100644 --- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h | |||
| @@ -225,7 +225,7 @@ static inline int vlan_hwaccel_receive_skb(struct sk_buff *skb, | |||
| 225 | } | 225 | } |
| 226 | 226 | ||
| 227 | /** | 227 | /** |
| 228 | * __vlan_put_tag - regular VLAN tag inserting | 228 | * vlan_insert_tag - regular VLAN tag inserting |
| 229 | * @skb: skbuff to tag | 229 | * @skb: skbuff to tag |
| 230 | * @vlan_tci: VLAN TCI to insert | 230 | * @vlan_tci: VLAN TCI to insert |
| 231 | * | 231 | * |
| @@ -234,8 +234,10 @@ static inline int vlan_hwaccel_receive_skb(struct sk_buff *skb, | |||
| 234 | * | 234 | * |
| 235 | * Following the skb_unshare() example, in case of error, the calling function | 235 | * Following the skb_unshare() example, in case of error, the calling function |
| 236 | * doesn't have to worry about freeing the original skb. | 236 | * doesn't have to worry about freeing the original skb. |
| 237 | * | ||
| 238 | * Does not change skb->protocol so this function can be used during receive. | ||
| 237 | */ | 239 | */ |
| 238 | static inline struct sk_buff *__vlan_put_tag(struct sk_buff *skb, u16 vlan_tci) | 240 | static inline struct sk_buff *vlan_insert_tag(struct sk_buff *skb, u16 vlan_tci) |
| 239 | { | 241 | { |
| 240 | struct vlan_ethhdr *veth; | 242 | struct vlan_ethhdr *veth; |
| 241 | 243 | ||
| @@ -255,8 +257,25 @@ static inline struct sk_buff *__vlan_put_tag(struct sk_buff *skb, u16 vlan_tci) | |||
| 255 | /* now, the TCI */ | 257 | /* now, the TCI */ |
| 256 | veth->h_vlan_TCI = htons(vlan_tci); | 258 | veth->h_vlan_TCI = htons(vlan_tci); |
| 257 | 259 | ||
| 258 | skb->protocol = htons(ETH_P_8021Q); | 260 | return skb; |
| 261 | } | ||
| 259 | 262 | ||
| 263 | /** | ||
| 264 | * __vlan_put_tag - regular VLAN tag inserting | ||
| 265 | * @skb: skbuff to tag | ||
| 266 | * @vlan_tci: VLAN TCI to insert | ||
| 267 | * | ||
| 268 | * Inserts the VLAN tag into @skb as part of the payload | ||
| 269 | * Returns a VLAN tagged skb. If a new skb is created, @skb is freed. | ||
| 270 | * | ||
| 271 | * Following the skb_unshare() example, in case of error, the calling function | ||
| 272 | * doesn't have to worry about freeing the original skb. | ||
| 273 | */ | ||
| 274 | static inline struct sk_buff *__vlan_put_tag(struct sk_buff *skb, u16 vlan_tci) | ||
| 275 | { | ||
| 276 | skb = vlan_insert_tag(skb, vlan_tci); | ||
| 277 | if (skb) | ||
| 278 | skb->protocol = htons(ETH_P_8021Q); | ||
| 260 | return skb; | 279 | return skb; |
| 261 | } | 280 | } |
| 262 | 281 | ||
diff --git a/include/linux/input/sh_keysc.h b/include/linux/input/sh_keysc.h index 649dc7f12925..5d253cd93691 100644 --- a/include/linux/input/sh_keysc.h +++ b/include/linux/input/sh_keysc.h | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | #ifndef __SH_KEYSC_H__ | 1 | #ifndef __SH_KEYSC_H__ |
| 2 | #define __SH_KEYSC_H__ | 2 | #define __SH_KEYSC_H__ |
| 3 | 3 | ||
| 4 | #define SH_KEYSC_MAXKEYS 49 | 4 | #define SH_KEYSC_MAXKEYS 64 |
| 5 | 5 | ||
| 6 | struct sh_keysc_info { | 6 | struct sh_keysc_info { |
| 7 | enum { SH_KEYSC_MODE_1, SH_KEYSC_MODE_2, SH_KEYSC_MODE_3, | 7 | enum { SH_KEYSC_MODE_1, SH_KEYSC_MODE_2, SH_KEYSC_MODE_3, |
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 6c12989839d9..f6efed0039ed 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
| @@ -414,6 +414,7 @@ enum | |||
| 414 | TASKLET_SOFTIRQ, | 414 | TASKLET_SOFTIRQ, |
| 415 | SCHED_SOFTIRQ, | 415 | SCHED_SOFTIRQ, |
| 416 | HRTIMER_SOFTIRQ, | 416 | HRTIMER_SOFTIRQ, |
| 417 | RCU_SOFTIRQ, /* Preferable RCU should always be the last softirq */ | ||
| 417 | 418 | ||
| 418 | NR_SOFTIRQS | 419 | NR_SOFTIRQS |
| 419 | }; | 420 | }; |
diff --git a/include/linux/irqreturn.h b/include/linux/irqreturn.h index 819acaaac3f5..714ba08dc092 100644 --- a/include/linux/irqreturn.h +++ b/include/linux/irqreturn.h | |||
| @@ -8,9 +8,9 @@ | |||
| 8 | * @IRQ_WAKE_THREAD handler requests to wake the handler thread | 8 | * @IRQ_WAKE_THREAD handler requests to wake the handler thread |
| 9 | */ | 9 | */ |
| 10 | enum irqreturn { | 10 | enum irqreturn { |
| 11 | IRQ_NONE, | 11 | IRQ_NONE = (0 << 0), |
| 12 | IRQ_HANDLED, | 12 | IRQ_HANDLED = (1 << 0), |
| 13 | IRQ_WAKE_THREAD, | 13 | IRQ_WAKE_THREAD = (1 << 1), |
| 14 | }; | 14 | }; |
| 15 | 15 | ||
| 16 | typedef enum irqreturn irqreturn_t; | 16 | typedef enum irqreturn irqreturn_t; |
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h index 4ecb7b16b278..d087c2e7b2aa 100644 --- a/include/linux/jbd2.h +++ b/include/linux/jbd2.h | |||
| @@ -1024,7 +1024,6 @@ struct journal_s | |||
| 1024 | 1024 | ||
| 1025 | /* Filing buffers */ | 1025 | /* Filing buffers */ |
| 1026 | extern void jbd2_journal_unfile_buffer(journal_t *, struct journal_head *); | 1026 | extern void jbd2_journal_unfile_buffer(journal_t *, struct journal_head *); |
| 1027 | extern void __jbd2_journal_unfile_buffer(struct journal_head *); | ||
| 1028 | extern void __jbd2_journal_refile_buffer(struct journal_head *); | 1027 | extern void __jbd2_journal_refile_buffer(struct journal_head *); |
| 1029 | extern void jbd2_journal_refile_buffer(journal_t *, struct journal_head *); | 1028 | extern void jbd2_journal_refile_buffer(journal_t *, struct journal_head *); |
| 1030 | extern void __jbd2_journal_file_buffer(struct journal_head *, transaction_t *, int); | 1029 | extern void __jbd2_journal_file_buffer(struct journal_head *, transaction_t *, int); |
| @@ -1165,7 +1164,6 @@ extern void jbd2_journal_release_jbd_inode(journal_t *journal, struct jbd2_in | |||
| 1165 | */ | 1164 | */ |
| 1166 | struct journal_head *jbd2_journal_add_journal_head(struct buffer_head *bh); | 1165 | struct journal_head *jbd2_journal_add_journal_head(struct buffer_head *bh); |
| 1167 | struct journal_head *jbd2_journal_grab_journal_head(struct buffer_head *bh); | 1166 | struct journal_head *jbd2_journal_grab_journal_head(struct buffer_head *bh); |
| 1168 | void jbd2_journal_remove_journal_head(struct buffer_head *bh); | ||
| 1169 | void jbd2_journal_put_journal_head(struct journal_head *jh); | 1167 | void jbd2_journal_put_journal_head(struct journal_head *jh); |
| 1170 | 1168 | ||
| 1171 | /* | 1169 | /* |
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index fb0e7329fee1..953352a88336 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
| @@ -671,8 +671,8 @@ struct sysinfo { | |||
| 671 | 671 | ||
| 672 | #ifdef __CHECKER__ | 672 | #ifdef __CHECKER__ |
| 673 | #define BUILD_BUG_ON_NOT_POWER_OF_2(n) | 673 | #define BUILD_BUG_ON_NOT_POWER_OF_2(n) |
| 674 | #define BUILD_BUG_ON_ZERO(e) | 674 | #define BUILD_BUG_ON_ZERO(e) (0) |
| 675 | #define BUILD_BUG_ON_NULL(e) | 675 | #define BUILD_BUG_ON_NULL(e) ((void*)0) |
| 676 | #define BUILD_BUG_ON(condition) | 676 | #define BUILD_BUG_ON(condition) |
| 677 | #else /* __CHECKER__ */ | 677 | #else /* __CHECKER__ */ |
| 678 | 678 | ||
diff --git a/include/linux/kmod.h b/include/linux/kmod.h index d4a5c84c503d..0da38cf7db7b 100644 --- a/include/linux/kmod.h +++ b/include/linux/kmod.h | |||
| @@ -45,7 +45,7 @@ static inline int request_module_nowait(const char *name, ...) { return -ENOSYS; | |||
| 45 | #endif | 45 | #endif |
| 46 | 46 | ||
| 47 | 47 | ||
| 48 | struct key; | 48 | struct cred; |
| 49 | struct file; | 49 | struct file; |
| 50 | 50 | ||
| 51 | enum umh_wait { | 51 | enum umh_wait { |
| @@ -62,7 +62,7 @@ struct subprocess_info { | |||
| 62 | char **envp; | 62 | char **envp; |
| 63 | enum umh_wait wait; | 63 | enum umh_wait wait; |
| 64 | int retval; | 64 | int retval; |
| 65 | int (*init)(struct subprocess_info *info); | 65 | int (*init)(struct subprocess_info *info, struct cred *new); |
| 66 | void (*cleanup)(struct subprocess_info *info); | 66 | void (*cleanup)(struct subprocess_info *info); |
| 67 | void *data; | 67 | void *data; |
| 68 | }; | 68 | }; |
| @@ -73,7 +73,7 @@ struct subprocess_info *call_usermodehelper_setup(char *path, char **argv, | |||
| 73 | 73 | ||
| 74 | /* Set various pieces of state into the subprocess_info structure */ | 74 | /* Set various pieces of state into the subprocess_info structure */ |
| 75 | void call_usermodehelper_setfns(struct subprocess_info *info, | 75 | void call_usermodehelper_setfns(struct subprocess_info *info, |
| 76 | int (*init)(struct subprocess_info *info), | 76 | int (*init)(struct subprocess_info *info, struct cred *new), |
| 77 | void (*cleanup)(struct subprocess_info *info), | 77 | void (*cleanup)(struct subprocess_info *info), |
| 78 | void *data); | 78 | void *data); |
| 79 | 79 | ||
| @@ -87,7 +87,7 @@ void call_usermodehelper_freeinfo(struct subprocess_info *info); | |||
| 87 | static inline int | 87 | static inline int |
| 88 | call_usermodehelper_fns(char *path, char **argv, char **envp, | 88 | call_usermodehelper_fns(char *path, char **argv, char **envp, |
| 89 | enum umh_wait wait, | 89 | enum umh_wait wait, |
| 90 | int (*init)(struct subprocess_info *info), | 90 | int (*init)(struct subprocess_info *info, struct cred *new), |
| 91 | void (*cleanup)(struct subprocess_info *), void *data) | 91 | void (*cleanup)(struct subprocess_info *), void *data) |
| 92 | { | 92 | { |
| 93 | struct subprocess_info *info; | 93 | struct subprocess_info *info; |
diff --git a/include/linux/kmsg_dump.h b/include/linux/kmsg_dump.h index 2a0d7d651dc3..ee0c952188de 100644 --- a/include/linux/kmsg_dump.h +++ b/include/linux/kmsg_dump.h | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #ifndef _LINUX_KMSG_DUMP_H | 12 | #ifndef _LINUX_KMSG_DUMP_H |
| 13 | #define _LINUX_KMSG_DUMP_H | 13 | #define _LINUX_KMSG_DUMP_H |
| 14 | 14 | ||
| 15 | #include <linux/errno.h> | ||
| 15 | #include <linux/list.h> | 16 | #include <linux/list.h> |
| 16 | 17 | ||
| 17 | enum kmsg_dump_reason { | 18 | enum kmsg_dump_reason { |
diff --git a/include/linux/kobject_ns.h b/include/linux/kobject_ns.h index 82cb5bf461fb..f66b065a8b5f 100644 --- a/include/linux/kobject_ns.h +++ b/include/linux/kobject_ns.h | |||
| @@ -32,15 +32,17 @@ enum kobj_ns_type { | |||
| 32 | 32 | ||
| 33 | /* | 33 | /* |
| 34 | * Callbacks so sysfs can determine namespaces | 34 | * Callbacks so sysfs can determine namespaces |
| 35 | * @current_ns: return calling task's namespace | 35 | * @grab_current_ns: return a new reference to calling task's namespace |
| 36 | * @netlink_ns: return namespace to which a sock belongs (right?) | 36 | * @netlink_ns: return namespace to which a sock belongs (right?) |
| 37 | * @initial_ns: return the initial namespace (i.e. init_net_ns) | 37 | * @initial_ns: return the initial namespace (i.e. init_net_ns) |
| 38 | * @drop_ns: drops a reference to namespace | ||
| 38 | */ | 39 | */ |
| 39 | struct kobj_ns_type_operations { | 40 | struct kobj_ns_type_operations { |
| 40 | enum kobj_ns_type type; | 41 | enum kobj_ns_type type; |
| 41 | const void *(*current_ns)(void); | 42 | void *(*grab_current_ns)(void); |
| 42 | const void *(*netlink_ns)(struct sock *sk); | 43 | const void *(*netlink_ns)(struct sock *sk); |
| 43 | const void *(*initial_ns)(void); | 44 | const void *(*initial_ns)(void); |
| 45 | void (*drop_ns)(void *); | ||
| 44 | }; | 46 | }; |
| 45 | 47 | ||
| 46 | int kobj_ns_type_register(const struct kobj_ns_type_operations *ops); | 48 | int kobj_ns_type_register(const struct kobj_ns_type_operations *ops); |
| @@ -48,9 +50,9 @@ int kobj_ns_type_registered(enum kobj_ns_type type); | |||
| 48 | const struct kobj_ns_type_operations *kobj_child_ns_ops(struct kobject *parent); | 50 | const struct kobj_ns_type_operations *kobj_child_ns_ops(struct kobject *parent); |
| 49 | const struct kobj_ns_type_operations *kobj_ns_ops(struct kobject *kobj); | 51 | const struct kobj_ns_type_operations *kobj_ns_ops(struct kobject *kobj); |
| 50 | 52 | ||
| 51 | const void *kobj_ns_current(enum kobj_ns_type type); | 53 | void *kobj_ns_grab_current(enum kobj_ns_type type); |
| 52 | const void *kobj_ns_netlink(enum kobj_ns_type type, struct sock *sk); | 54 | const void *kobj_ns_netlink(enum kobj_ns_type type, struct sock *sk); |
| 53 | const void *kobj_ns_initial(enum kobj_ns_type type); | 55 | const void *kobj_ns_initial(enum kobj_ns_type type); |
| 54 | void kobj_ns_exit(enum kobj_ns_type type, const void *ns); | 56 | void kobj_ns_drop(enum kobj_ns_type type, void *ns); |
| 55 | 57 | ||
| 56 | #endif /* _LINUX_KOBJECT_NS_H */ | 58 | #endif /* _LINUX_KOBJECT_NS_H */ |
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 9724a38ee69d..50940da6adf3 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h | |||
| @@ -84,6 +84,7 @@ int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *mem); | |||
| 84 | 84 | ||
| 85 | extern struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page); | 85 | extern struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page); |
| 86 | extern struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p); | 86 | extern struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p); |
| 87 | extern struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm); | ||
| 87 | 88 | ||
| 88 | static inline | 89 | static inline |
| 89 | int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup) | 90 | int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup) |
| @@ -246,6 +247,11 @@ static inline struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page) | |||
| 246 | return NULL; | 247 | return NULL; |
| 247 | } | 248 | } |
| 248 | 249 | ||
| 250 | static inline struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm) | ||
| 251 | { | ||
| 252 | return NULL; | ||
| 253 | } | ||
| 254 | |||
| 249 | static inline int mm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *mem) | 255 | static inline int mm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *mem) |
| 250 | { | 256 | { |
| 251 | return 1; | 257 | return 1; |
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index c928dac6cad0..9f7c3ebcbbad 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h | |||
| @@ -647,6 +647,13 @@ typedef struct pglist_data { | |||
| 647 | #endif | 647 | #endif |
| 648 | #define nid_page_nr(nid, pagenr) pgdat_page_nr(NODE_DATA(nid),(pagenr)) | 648 | #define nid_page_nr(nid, pagenr) pgdat_page_nr(NODE_DATA(nid),(pagenr)) |
| 649 | 649 | ||
| 650 | #define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn) | ||
| 651 | |||
| 652 | #define node_end_pfn(nid) ({\ | ||
| 653 | pg_data_t *__pgdat = NODE_DATA(nid);\ | ||
| 654 | __pgdat->node_start_pfn + __pgdat->node_spanned_pages;\ | ||
| 655 | }) | ||
| 656 | |||
| 650 | #include <linux/memory_hotplug.h> | 657 | #include <linux/memory_hotplug.h> |
| 651 | 658 | ||
| 652 | extern struct mutex zonelists_mutex; | 659 | extern struct mutex zonelists_mutex; |
diff --git a/include/linux/mtd/physmap.h b/include/linux/mtd/physmap.h index d40bfa1d9c91..e5f21d293c70 100644 --- a/include/linux/mtd/physmap.h +++ b/include/linux/mtd/physmap.h | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include <linux/mtd/partitions.h> | 19 | #include <linux/mtd/partitions.h> |
| 20 | 20 | ||
| 21 | struct map_info; | 21 | struct map_info; |
| 22 | struct platform_device; | ||
| 22 | 23 | ||
| 23 | struct physmap_flash_data { | 24 | struct physmap_flash_data { |
| 24 | unsigned int width; | 25 | unsigned int width; |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index ca333e79e10f..54b8b4d7b68f 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -2555,7 +2555,7 @@ extern void netdev_class_remove_file(struct class_attribute *class_attr); | |||
| 2555 | 2555 | ||
| 2556 | extern struct kobj_ns_type_operations net_ns_type_operations; | 2556 | extern struct kobj_ns_type_operations net_ns_type_operations; |
| 2557 | 2557 | ||
| 2558 | extern char *netdev_drivername(const struct net_device *dev, char *buffer, int len); | 2558 | extern const char *netdev_drivername(const struct net_device *dev); |
| 2559 | 2559 | ||
| 2560 | extern void linkwatch_run_queue(void); | 2560 | extern void linkwatch_run_queue(void); |
| 2561 | 2561 | ||
diff --git a/include/linux/netfilter/nf_conntrack_common.h b/include/linux/netfilter/nf_conntrack_common.h index 50cdc2559a5a..0d3dd66322ec 100644 --- a/include/linux/netfilter/nf_conntrack_common.h +++ b/include/linux/netfilter/nf_conntrack_common.h | |||
| @@ -18,6 +18,9 @@ enum ip_conntrack_info { | |||
| 18 | /* >= this indicates reply direction */ | 18 | /* >= this indicates reply direction */ |
| 19 | IP_CT_IS_REPLY, | 19 | IP_CT_IS_REPLY, |
| 20 | 20 | ||
| 21 | IP_CT_ESTABLISHED_REPLY = IP_CT_ESTABLISHED + IP_CT_IS_REPLY, | ||
| 22 | IP_CT_RELATED_REPLY = IP_CT_RELATED + IP_CT_IS_REPLY, | ||
| 23 | IP_CT_NEW_REPLY = IP_CT_NEW + IP_CT_IS_REPLY, | ||
| 21 | /* Number of distinct IP_CT types (no NEW in reply dirn). */ | 24 | /* Number of distinct IP_CT types (no NEW in reply dirn). */ |
| 22 | IP_CT_NUMBER = IP_CT_IS_REPLY * 2 - 1 | 25 | IP_CT_NUMBER = IP_CT_IS_REPLY * 2 - 1 |
| 23 | }; | 26 | }; |
diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h index 3a34e80ae92f..25311b3bedf8 100644 --- a/include/linux/nfs_page.h +++ b/include/linux/nfs_page.h | |||
| @@ -92,6 +92,9 @@ extern int nfs_pageio_add_request(struct nfs_pageio_descriptor *, | |||
| 92 | struct nfs_page *); | 92 | struct nfs_page *); |
| 93 | extern void nfs_pageio_complete(struct nfs_pageio_descriptor *desc); | 93 | extern void nfs_pageio_complete(struct nfs_pageio_descriptor *desc); |
| 94 | extern void nfs_pageio_cond_complete(struct nfs_pageio_descriptor *, pgoff_t); | 94 | extern void nfs_pageio_cond_complete(struct nfs_pageio_descriptor *, pgoff_t); |
| 95 | extern bool nfs_generic_pg_test(struct nfs_pageio_descriptor *desc, | ||
| 96 | struct nfs_page *prev, | ||
| 97 | struct nfs_page *req); | ||
| 95 | extern int nfs_wait_on_request(struct nfs_page *); | 98 | extern int nfs_wait_on_request(struct nfs_page *); |
| 96 | extern void nfs_unlock_request(struct nfs_page *req); | 99 | extern void nfs_unlock_request(struct nfs_page *req); |
| 97 | extern int nfs_set_page_tag_locked(struct nfs_page *req); | 100 | extern int nfs_set_page_tag_locked(struct nfs_page *req); |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 5e8444a11adf..00848d86ffb2 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
| @@ -158,7 +158,6 @@ struct nfs_seqid; | |||
| 158 | 158 | ||
| 159 | /* nfs41 sessions channel attributes */ | 159 | /* nfs41 sessions channel attributes */ |
| 160 | struct nfs4_channel_attrs { | 160 | struct nfs4_channel_attrs { |
| 161 | u32 headerpadsz; | ||
| 162 | u32 max_rqst_sz; | 161 | u32 max_rqst_sz; |
| 163 | u32 max_resp_sz; | 162 | u32 max_resp_sz; |
| 164 | u32 max_resp_sz_cached; | 163 | u32 max_resp_sz_cached; |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index a311008af5e1..f8910e155566 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -1537,6 +1537,7 @@ | |||
| 1537 | #define PCI_DEVICE_ID_RICOH_RL5C476 0x0476 | 1537 | #define PCI_DEVICE_ID_RICOH_RL5C476 0x0476 |
| 1538 | #define PCI_DEVICE_ID_RICOH_RL5C478 0x0478 | 1538 | #define PCI_DEVICE_ID_RICOH_RL5C478 0x0478 |
| 1539 | #define PCI_DEVICE_ID_RICOH_R5C822 0x0822 | 1539 | #define PCI_DEVICE_ID_RICOH_R5C822 0x0822 |
| 1540 | #define PCI_DEVICE_ID_RICOH_R5CE823 0xe823 | ||
| 1540 | #define PCI_DEVICE_ID_RICOH_R5C832 0x0832 | 1541 | #define PCI_DEVICE_ID_RICOH_R5C832 0x0832 |
| 1541 | #define PCI_DEVICE_ID_RICOH_R5C843 0x0843 | 1542 | #define PCI_DEVICE_ID_RICOH_R5C843 0x0843 |
| 1542 | 1543 | ||
diff --git a/include/linux/percpu.h b/include/linux/percpu.h index 8b97308e65df..9ca008f0c542 100644 --- a/include/linux/percpu.h +++ b/include/linux/percpu.h | |||
| @@ -259,6 +259,9 @@ extern void __bad_size_call_parameter(void); | |||
| 259 | * Special handling for cmpxchg_double. cmpxchg_double is passed two | 259 | * Special handling for cmpxchg_double. cmpxchg_double is passed two |
| 260 | * percpu variables. The first has to be aligned to a double word | 260 | * percpu variables. The first has to be aligned to a double word |
| 261 | * boundary and the second has to follow directly thereafter. | 261 | * boundary and the second has to follow directly thereafter. |
| 262 | * We enforce this on all architectures even if they don't support | ||
| 263 | * a double cmpxchg instruction, since it's a cheap requirement, and it | ||
| 264 | * avoids breaking the requirement for architectures with the instruction. | ||
| 262 | */ | 265 | */ |
| 263 | #define __pcpu_double_call_return_bool(stem, pcp1, pcp2, ...) \ | 266 | #define __pcpu_double_call_return_bool(stem, pcp1, pcp2, ...) \ |
| 264 | ({ \ | 267 | ({ \ |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 3412684ce5d5..e0786e35f247 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
| @@ -137,14 +137,14 @@ enum perf_event_sample_format { | |||
| 137 | * | 137 | * |
| 138 | * struct read_format { | 138 | * struct read_format { |
| 139 | * { u64 value; | 139 | * { u64 value; |
| 140 | * { u64 time_enabled; } && PERF_FORMAT_ENABLED | 140 | * { u64 time_enabled; } && PERF_FORMAT_TOTAL_TIME_ENABLED |
| 141 | * { u64 time_running; } && PERF_FORMAT_RUNNING | 141 | * { u64 time_running; } && PERF_FORMAT_TOTAL_TIME_RUNNING |
| 142 | * { u64 id; } && PERF_FORMAT_ID | 142 | * { u64 id; } && PERF_FORMAT_ID |
| 143 | * } && !PERF_FORMAT_GROUP | 143 | * } && !PERF_FORMAT_GROUP |
| 144 | * | 144 | * |
| 145 | * { u64 nr; | 145 | * { u64 nr; |
| 146 | * { u64 time_enabled; } && PERF_FORMAT_ENABLED | 146 | * { u64 time_enabled; } && PERF_FORMAT_TOTAL_TIME_ENABLED |
| 147 | * { u64 time_running; } && PERF_FORMAT_RUNNING | 147 | * { u64 time_running; } && PERF_FORMAT_TOTAL_TIME_RUNNING |
| 148 | * { u64 value; | 148 | * { u64 value; |
| 149 | * { u64 id; } && PERF_FORMAT_ID | 149 | * { u64 id; } && PERF_FORMAT_ID |
| 150 | * } cntr[nr]; | 150 | * } cntr[nr]; |
diff --git a/include/linux/pm.h b/include/linux/pm.h index 3160648ccdda..411e4f4be52b 100644 --- a/include/linux/pm.h +++ b/include/linux/pm.h | |||
| @@ -425,7 +425,8 @@ struct dev_pm_info { | |||
| 425 | pm_message_t power_state; | 425 | pm_message_t power_state; |
| 426 | unsigned int can_wakeup:1; | 426 | unsigned int can_wakeup:1; |
| 427 | unsigned int async_suspend:1; | 427 | unsigned int async_suspend:1; |
| 428 | unsigned int in_suspend:1; /* Owned by the PM core */ | 428 | bool is_prepared:1; /* Owned by the PM core */ |
| 429 | bool is_suspended:1; /* Ditto */ | ||
| 429 | spinlock_t lock; | 430 | spinlock_t lock; |
| 430 | #ifdef CONFIG_PM_SLEEP | 431 | #ifdef CONFIG_PM_SLEEP |
| 431 | struct list_head entry; | 432 | struct list_head entry; |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 2a8621c4be1e..a837b20ba190 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -1063,6 +1063,7 @@ struct sched_domain; | |||
| 1063 | */ | 1063 | */ |
| 1064 | #define WF_SYNC 0x01 /* waker goes to sleep after wakup */ | 1064 | #define WF_SYNC 0x01 /* waker goes to sleep after wakup */ |
| 1065 | #define WF_FORK 0x02 /* child wakeup after fork */ | 1065 | #define WF_FORK 0x02 /* child wakeup after fork */ |
| 1066 | #define WF_MIGRATED 0x04 /* internal use, task got migrated */ | ||
| 1066 | 1067 | ||
| 1067 | #define ENQUEUE_WAKEUP 1 | 1068 | #define ENQUEUE_WAKEUP 1 |
| 1068 | #define ENQUEUE_HEAD 2 | 1069 | #define ENQUEUE_HEAD 2 |
diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h index e9811892844f..c6db9fb33c44 100644 --- a/include/linux/seqlock.h +++ b/include/linux/seqlock.h | |||
| @@ -28,6 +28,7 @@ | |||
| 28 | 28 | ||
| 29 | #include <linux/spinlock.h> | 29 | #include <linux/spinlock.h> |
| 30 | #include <linux/preempt.h> | 30 | #include <linux/preempt.h> |
| 31 | #include <asm/processor.h> | ||
| 31 | 32 | ||
| 32 | typedef struct { | 33 | typedef struct { |
| 33 | unsigned sequence; | 34 | unsigned sequence; |
diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h index 2b7fec840517..aa08fa8fd79b 100644 --- a/include/linux/shmem_fs.h +++ b/include/linux/shmem_fs.h | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | 3 | ||
| 4 | #include <linux/swap.h> | 4 | #include <linux/swap.h> |
| 5 | #include <linux/mempolicy.h> | 5 | #include <linux/mempolicy.h> |
| 6 | #include <linux/pagemap.h> | ||
| 6 | #include <linux/percpu_counter.h> | 7 | #include <linux/percpu_counter.h> |
| 7 | 8 | ||
| 8 | /* inode in-kernel data */ | 9 | /* inode in-kernel data */ |
| @@ -45,7 +46,27 @@ static inline struct shmem_inode_info *SHMEM_I(struct inode *inode) | |||
| 45 | return container_of(inode, struct shmem_inode_info, vfs_inode); | 46 | return container_of(inode, struct shmem_inode_info, vfs_inode); |
| 46 | } | 47 | } |
| 47 | 48 | ||
| 49 | /* | ||
| 50 | * Functions in mm/shmem.c called directly from elsewhere: | ||
| 51 | */ | ||
| 48 | extern int init_tmpfs(void); | 52 | extern int init_tmpfs(void); |
| 49 | extern int shmem_fill_super(struct super_block *sb, void *data, int silent); | 53 | extern int shmem_fill_super(struct super_block *sb, void *data, int silent); |
| 54 | extern struct file *shmem_file_setup(const char *name, | ||
| 55 | loff_t size, unsigned long flags); | ||
| 56 | extern int shmem_zero_setup(struct vm_area_struct *); | ||
| 57 | extern int shmem_lock(struct file *file, int lock, struct user_struct *user); | ||
| 58 | extern struct page *shmem_read_mapping_page_gfp(struct address_space *mapping, | ||
| 59 | pgoff_t index, gfp_t gfp_mask); | ||
| 60 | extern void shmem_truncate_range(struct inode *inode, loff_t start, loff_t end); | ||
| 61 | extern int shmem_unuse(swp_entry_t entry, struct page *page); | ||
| 62 | extern void mem_cgroup_get_shmem_target(struct inode *inode, pgoff_t pgoff, | ||
| 63 | struct page **pagep, swp_entry_t *ent); | ||
| 64 | |||
| 65 | static inline struct page *shmem_read_mapping_page( | ||
| 66 | struct address_space *mapping, pgoff_t index) | ||
| 67 | { | ||
| 68 | return shmem_read_mapping_page_gfp(mapping, index, | ||
| 69 | mapping_gfp_mask(mapping)); | ||
| 70 | } | ||
| 50 | 71 | ||
| 51 | #endif | 72 | #endif |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index e8b78ce14474..c0a4f3ab0cc0 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
| @@ -1256,6 +1256,11 @@ static inline void skb_reserve(struct sk_buff *skb, int len) | |||
| 1256 | skb->tail += len; | 1256 | skb->tail += len; |
| 1257 | } | 1257 | } |
| 1258 | 1258 | ||
| 1259 | static inline void skb_reset_mac_len(struct sk_buff *skb) | ||
| 1260 | { | ||
| 1261 | skb->mac_len = skb->network_header - skb->mac_header; | ||
| 1262 | } | ||
| 1263 | |||
| 1259 | #ifdef NET_SKBUFF_DATA_USES_OFFSET | 1264 | #ifdef NET_SKBUFF_DATA_USES_OFFSET |
| 1260 | static inline unsigned char *skb_transport_header(const struct sk_buff *skb) | 1265 | static inline unsigned char *skb_transport_header(const struct sk_buff *skb) |
| 1261 | { | 1266 | { |
diff --git a/include/linux/smp.h b/include/linux/smp.h index 7ad824d510a2..8cc38d3bab0c 100644 --- a/include/linux/smp.h +++ b/include/linux/smp.h | |||
| @@ -85,12 +85,15 @@ int smp_call_function_any(const struct cpumask *mask, | |||
| 85 | * Generic and arch helpers | 85 | * Generic and arch helpers |
| 86 | */ | 86 | */ |
| 87 | #ifdef CONFIG_USE_GENERIC_SMP_HELPERS | 87 | #ifdef CONFIG_USE_GENERIC_SMP_HELPERS |
| 88 | void __init call_function_init(void); | ||
| 88 | void generic_smp_call_function_single_interrupt(void); | 89 | void generic_smp_call_function_single_interrupt(void); |
| 89 | void generic_smp_call_function_interrupt(void); | 90 | void generic_smp_call_function_interrupt(void); |
| 90 | void ipi_call_lock(void); | 91 | void ipi_call_lock(void); |
| 91 | void ipi_call_unlock(void); | 92 | void ipi_call_unlock(void); |
| 92 | void ipi_call_lock_irq(void); | 93 | void ipi_call_lock_irq(void); |
| 93 | void ipi_call_unlock_irq(void); | 94 | void ipi_call_unlock_irq(void); |
| 95 | #else | ||
| 96 | static inline void call_function_init(void) { } | ||
| 94 | #endif | 97 | #endif |
| 95 | 98 | ||
| 96 | /* | 99 | /* |
| @@ -134,7 +137,7 @@ static inline void smp_send_reschedule(int cpu) { } | |||
| 134 | #define smp_prepare_boot_cpu() do {} while (0) | 137 | #define smp_prepare_boot_cpu() do {} while (0) |
| 135 | #define smp_call_function_many(mask, func, info, wait) \ | 138 | #define smp_call_function_many(mask, func, info, wait) \ |
| 136 | (up_smp_call_function(func, info)) | 139 | (up_smp_call_function(func, info)) |
| 137 | static inline void init_call_single_data(void) { } | 140 | static inline void call_function_init(void) { } |
| 138 | 141 | ||
| 139 | static inline int | 142 | static inline int |
| 140 | smp_call_function_any(const struct cpumask *mask, smp_call_func_t func, | 143 | smp_call_function_any(const struct cpumask *mask, smp_call_func_t func, |
diff --git a/include/linux/sunrpc/gss_krb5_enctypes.h b/include/linux/sunrpc/gss_krb5_enctypes.h new file mode 100644 index 000000000000..ec6234eee89c --- /dev/null +++ b/include/linux/sunrpc/gss_krb5_enctypes.h | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | /* | ||
| 2 | * Dumb way to share this static piece of information with nfsd | ||
| 3 | */ | ||
| 4 | #define KRB5_SUPPORTED_ENCTYPES "18,17,16,23,3,1,2" | ||
diff --git a/include/linux/sunrpc/sched.h b/include/linux/sunrpc/sched.h index f73c482ec9c6..fe2d8e6b923b 100644 --- a/include/linux/sunrpc/sched.h +++ b/include/linux/sunrpc/sched.h | |||
| @@ -84,7 +84,8 @@ struct rpc_task { | |||
| 84 | #endif | 84 | #endif |
| 85 | unsigned char tk_priority : 2,/* Task priority */ | 85 | unsigned char tk_priority : 2,/* Task priority */ |
| 86 | tk_garb_retry : 2, | 86 | tk_garb_retry : 2, |
| 87 | tk_cred_retry : 2; | 87 | tk_cred_retry : 2, |
| 88 | tk_rebind_retry : 2; | ||
| 88 | }; | 89 | }; |
| 89 | #define tk_xprt tk_client->cl_xprt | 90 | #define tk_xprt tk_client->cl_xprt |
| 90 | 91 | ||
diff --git a/include/linux/swap.h b/include/linux/swap.h index 384eb5fe530b..a273468f8285 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h | |||
| @@ -300,16 +300,6 @@ static inline void scan_unevictable_unregister_node(struct node *node) | |||
| 300 | extern int kswapd_run(int nid); | 300 | extern int kswapd_run(int nid); |
| 301 | extern void kswapd_stop(int nid); | 301 | extern void kswapd_stop(int nid); |
| 302 | 302 | ||
| 303 | #ifdef CONFIG_MMU | ||
| 304 | /* linux/mm/shmem.c */ | ||
| 305 | extern int shmem_unuse(swp_entry_t entry, struct page *page); | ||
| 306 | #endif /* CONFIG_MMU */ | ||
| 307 | |||
| 308 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR | ||
| 309 | extern void mem_cgroup_get_shmem_target(struct inode *inode, pgoff_t pgoff, | ||
| 310 | struct page **pagep, swp_entry_t *ent); | ||
| 311 | #endif | ||
| 312 | |||
| 313 | #ifdef CONFIG_SWAP | 303 | #ifdef CONFIG_SWAP |
| 314 | /* linux/mm/page_io.c */ | 304 | /* linux/mm/page_io.c */ |
| 315 | extern int swap_readpage(struct page *); | 305 | extern int swap_readpage(struct page *); |
| @@ -358,6 +348,7 @@ struct backing_dev_info; | |||
| 358 | extern struct mm_struct *swap_token_mm; | 348 | extern struct mm_struct *swap_token_mm; |
| 359 | extern void grab_swap_token(struct mm_struct *); | 349 | extern void grab_swap_token(struct mm_struct *); |
| 360 | extern void __put_swap_token(struct mm_struct *); | 350 | extern void __put_swap_token(struct mm_struct *); |
| 351 | extern void disable_swap_token(struct mem_cgroup *memcg); | ||
| 361 | 352 | ||
| 362 | static inline int has_swap_token(struct mm_struct *mm) | 353 | static inline int has_swap_token(struct mm_struct *mm) |
| 363 | { | 354 | { |
| @@ -370,11 +361,6 @@ static inline void put_swap_token(struct mm_struct *mm) | |||
| 370 | __put_swap_token(mm); | 361 | __put_swap_token(mm); |
| 371 | } | 362 | } |
| 372 | 363 | ||
| 373 | static inline void disable_swap_token(void) | ||
| 374 | { | ||
| 375 | put_swap_token(swap_token_mm); | ||
| 376 | } | ||
| 377 | |||
| 378 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR | 364 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR |
| 379 | extern void | 365 | extern void |
| 380 | mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout); | 366 | mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout); |
| @@ -500,7 +486,7 @@ static inline int has_swap_token(struct mm_struct *mm) | |||
| 500 | return 0; | 486 | return 0; |
| 501 | } | 487 | } |
| 502 | 488 | ||
| 503 | static inline void disable_swap_token(void) | 489 | static inline void disable_swap_token(struct mem_cgroup *memcg) |
| 504 | { | 490 | { |
| 505 | } | 491 | } |
| 506 | 492 | ||
diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h index 8c0e349f4a6c..445702c60d04 100644 --- a/include/linux/swiotlb.h +++ b/include/linux/swiotlb.h | |||
| @@ -24,6 +24,7 @@ extern int swiotlb_force; | |||
| 24 | 24 | ||
| 25 | extern void swiotlb_init(int verbose); | 25 | extern void swiotlb_init(int verbose); |
| 26 | extern void swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose); | 26 | extern void swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose); |
| 27 | extern unsigned long swioltb_nr_tbl(void); | ||
| 27 | 28 | ||
| 28 | /* | 29 | /* |
| 29 | * Enumeration for sync targets | 30 | * Enumeration for sync targets |
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h index c3acda60eee0..e2696d76a599 100644 --- a/include/linux/sysfs.h +++ b/include/linux/sysfs.h | |||
| @@ -177,9 +177,6 @@ struct sysfs_dirent *sysfs_get_dirent(struct sysfs_dirent *parent_sd, | |||
| 177 | struct sysfs_dirent *sysfs_get(struct sysfs_dirent *sd); | 177 | struct sysfs_dirent *sysfs_get(struct sysfs_dirent *sd); |
| 178 | void sysfs_put(struct sysfs_dirent *sd); | 178 | void sysfs_put(struct sysfs_dirent *sd); |
| 179 | 179 | ||
| 180 | /* Called to clear a ns tag when it is no longer valid */ | ||
| 181 | void sysfs_exit_ns(enum kobj_ns_type type, const void *tag); | ||
| 182 | |||
| 183 | int __must_check sysfs_init(void); | 180 | int __must_check sysfs_init(void); |
| 184 | 181 | ||
| 185 | #else /* CONFIG_SYSFS */ | 182 | #else /* CONFIG_SYSFS */ |
| @@ -338,10 +335,6 @@ static inline void sysfs_put(struct sysfs_dirent *sd) | |||
| 338 | { | 335 | { |
| 339 | } | 336 | } |
| 340 | 337 | ||
| 341 | static inline void sysfs_exit_ns(int type, const void *tag) | ||
| 342 | { | ||
| 343 | } | ||
| 344 | |||
| 345 | static inline int __must_check sysfs_init(void) | 338 | static inline int __must_check sysfs_init(void) |
| 346 | { | 339 | { |
| 347 | return 0; | 340 | return 0; |
diff --git a/include/linux/topology.h b/include/linux/topology.h index b91a40e847d2..fc839bfa7935 100644 --- a/include/linux/topology.h +++ b/include/linux/topology.h | |||
| @@ -60,7 +60,7 @@ int arch_update_cpu_topology(void); | |||
| 60 | * (in whatever arch specific measurement units returned by node_distance()) | 60 | * (in whatever arch specific measurement units returned by node_distance()) |
| 61 | * then switch on zone reclaim on boot. | 61 | * then switch on zone reclaim on boot. |
| 62 | */ | 62 | */ |
| 63 | #define RECLAIM_DISTANCE 20 | 63 | #define RECLAIM_DISTANCE 30 |
| 64 | #endif | 64 | #endif |
| 65 | #ifndef PENALTY_FOR_NODE_WITH_CPUS | 65 | #ifndef PENALTY_FOR_NODE_WITH_CPUS |
| 66 | #define PENALTY_FOR_NODE_WITH_CPUS (1) | 66 | #define PENALTY_FOR_NODE_WITH_CPUS (1) |
diff --git a/include/linux/tty_ldisc.h b/include/linux/tty_ldisc.h index 5b07792ccb46..ff7dc08696a8 100644 --- a/include/linux/tty_ldisc.h +++ b/include/linux/tty_ldisc.h | |||
| @@ -76,7 +76,7 @@ | |||
| 76 | * tty device. It is solely the responsibility of the line | 76 | * tty device. It is solely the responsibility of the line |
| 77 | * discipline to handle poll requests. | 77 | * discipline to handle poll requests. |
| 78 | * | 78 | * |
| 79 | * unsigned int (*receive_buf)(struct tty_struct *, const unsigned char *cp, | 79 | * void (*receive_buf)(struct tty_struct *, const unsigned char *cp, |
| 80 | * char *fp, int count); | 80 | * char *fp, int count); |
| 81 | * | 81 | * |
| 82 | * This function is called by the low-level tty driver to send | 82 | * This function is called by the low-level tty driver to send |
| @@ -84,8 +84,7 @@ | |||
| 84 | * processing. <cp> is a pointer to the buffer of input | 84 | * processing. <cp> is a pointer to the buffer of input |
| 85 | * character received by the device. <fp> is a pointer to a | 85 | * character received by the device. <fp> is a pointer to a |
| 86 | * pointer of flag bytes which indicate whether a character was | 86 | * pointer of flag bytes which indicate whether a character was |
| 87 | * received with a parity error, etc. Returns the amount of bytes | 87 | * received with a parity error, etc. |
| 88 | * received. | ||
| 89 | * | 88 | * |
| 90 | * void (*write_wakeup)(struct tty_struct *); | 89 | * void (*write_wakeup)(struct tty_struct *); |
| 91 | * | 90 | * |
| @@ -141,8 +140,8 @@ struct tty_ldisc_ops { | |||
| 141 | /* | 140 | /* |
| 142 | * The following routines are called from below. | 141 | * The following routines are called from below. |
| 143 | */ | 142 | */ |
| 144 | unsigned int (*receive_buf)(struct tty_struct *, | 143 | void (*receive_buf)(struct tty_struct *, const unsigned char *cp, |
| 145 | const unsigned char *cp, char *fp, int count); | 144 | char *fp, int count); |
| 146 | void (*write_wakeup)(struct tty_struct *); | 145 | void (*write_wakeup)(struct tty_struct *); |
| 147 | void (*dcd_change)(struct tty_struct *, unsigned int, | 146 | void (*dcd_change)(struct tty_struct *, unsigned int, |
| 148 | struct pps_event_time *); | 147 | struct pps_event_time *); |
diff --git a/include/linux/usb_usual.h b/include/linux/usb_usual.h index 71693d4a4fe1..17df3600bcef 100644 --- a/include/linux/usb_usual.h +++ b/include/linux/usb_usual.h | |||
| @@ -62,7 +62,9 @@ | |||
| 62 | US_FLAG(NO_READ_DISC_INFO, 0x00040000) \ | 62 | US_FLAG(NO_READ_DISC_INFO, 0x00040000) \ |
| 63 | /* cannot handle READ_DISC_INFO */ \ | 63 | /* cannot handle READ_DISC_INFO */ \ |
| 64 | US_FLAG(NO_READ_CAPACITY_16, 0x00080000) \ | 64 | US_FLAG(NO_READ_CAPACITY_16, 0x00080000) \ |
| 65 | /* cannot handle READ_CAPACITY_16 */ | 65 | /* cannot handle READ_CAPACITY_16 */ \ |
| 66 | US_FLAG(INITIAL_READ10, 0x00100000) \ | ||
| 67 | /* Initial READ(10) (and others) must be retried */ | ||
| 66 | 68 | ||
| 67 | #define US_FLAG(name, value) US_FL_##name = value , | 69 | #define US_FLAG(name, value) US_FL_##name = value , |
| 68 | enum { US_DO_ALL_FLAGS }; | 70 | enum { US_DO_ALL_FLAGS }; |
diff --git a/include/linux/uts.h b/include/linux/uts.h index 73eb1ed36ec4..6ddbd86377de 100644 --- a/include/linux/uts.h +++ b/include/linux/uts.h | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | #endif | 9 | #endif |
| 10 | 10 | ||
| 11 | #ifndef UTS_NODENAME | 11 | #ifndef UTS_NODENAME |
| 12 | #define UTS_NODENAME "(none)" /* set by sethostname() */ | 12 | #define UTS_NODENAME CONFIG_DEFAULT_HOSTNAME /* set by sethostname() */ |
| 13 | #endif | 13 | #endif |
| 14 | 14 | ||
| 15 | #ifndef UTS_DOMAINNAME | 15 | #ifndef UTS_DOMAINNAME |
diff --git a/include/linux/virtio.h b/include/linux/virtio.h index aff5b4f74041..710885749605 100644 --- a/include/linux/virtio.h +++ b/include/linux/virtio.h | |||
| @@ -51,6 +51,13 @@ struct virtqueue { | |||
| 51 | * This re-enables callbacks; it returns "false" if there are pending | 51 | * This re-enables callbacks; it returns "false" if there are pending |
| 52 | * buffers in the queue, to detect a possible race between the driver | 52 | * buffers in the queue, to detect a possible race between the driver |
| 53 | * checking for more work, and enabling callbacks. | 53 | * checking for more work, and enabling callbacks. |
| 54 | * virtqueue_enable_cb_delayed: restart callbacks after disable_cb. | ||
| 55 | * vq: the struct virtqueue we're talking about. | ||
| 56 | * This re-enables callbacks but hints to the other side to delay | ||
| 57 | * interrupts until most of the available buffers have been processed; | ||
| 58 | * it returns "false" if there are many pending buffers in the queue, | ||
| 59 | * to detect a possible race between the driver checking for more work, | ||
| 60 | * and enabling callbacks. | ||
| 54 | * virtqueue_detach_unused_buf: detach first unused buffer | 61 | * virtqueue_detach_unused_buf: detach first unused buffer |
| 55 | * vq: the struct virtqueue we're talking about. | 62 | * vq: the struct virtqueue we're talking about. |
| 56 | * Returns NULL or the "data" token handed to add_buf | 63 | * Returns NULL or the "data" token handed to add_buf |
| @@ -86,6 +93,8 @@ void virtqueue_disable_cb(struct virtqueue *vq); | |||
| 86 | 93 | ||
| 87 | bool virtqueue_enable_cb(struct virtqueue *vq); | 94 | bool virtqueue_enable_cb(struct virtqueue *vq); |
| 88 | 95 | ||
| 96 | bool virtqueue_enable_cb_delayed(struct virtqueue *vq); | ||
| 97 | |||
| 89 | void *virtqueue_detach_unused_buf(struct virtqueue *vq); | 98 | void *virtqueue_detach_unused_buf(struct virtqueue *vq); |
| 90 | 99 | ||
| 91 | /** | 100 | /** |
diff --git a/include/linux/virtio_9p.h b/include/linux/virtio_9p.h index e68b439b2860..277c4ad44e84 100644 --- a/include/linux/virtio_9p.h +++ b/include/linux/virtio_9p.h | |||
| @@ -1,7 +1,30 @@ | |||
| 1 | #ifndef _LINUX_VIRTIO_9P_H | 1 | #ifndef _LINUX_VIRTIO_9P_H |
| 2 | #define _LINUX_VIRTIO_9P_H | 2 | #define _LINUX_VIRTIO_9P_H |
| 3 | /* This header is BSD licensed so anyone can use the definitions to implement | 3 | /* This header is BSD licensed so anyone can use the definitions to implement |
| 4 | * compatible drivers/servers. */ | 4 | * compatible drivers/servers. |
| 5 | * | ||
| 6 | * Redistribution and use in source and binary forms, with or without | ||
| 7 | * modification, are permitted provided that the following conditions | ||
| 8 | * are met: | ||
| 9 | * 1. Redistributions of source code must retain the above copyright | ||
| 10 | * notice, this list of conditions and the following disclaimer. | ||
| 11 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 12 | * notice, this list of conditions and the following disclaimer in the | ||
| 13 | * documentation and/or other materials provided with the distribution. | ||
| 14 | * 3. Neither the name of IBM nor the names of its contributors | ||
| 15 | * may be used to endorse or promote products derived from this software | ||
| 16 | * without specific prior written permission. | ||
| 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND | ||
| 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 20 | * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE | ||
| 21 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 22 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 23 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 24 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 25 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 26 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 27 | * SUCH DAMAGE. */ | ||
| 5 | #include <linux/types.h> | 28 | #include <linux/types.h> |
| 6 | #include <linux/virtio_ids.h> | 29 | #include <linux/virtio_ids.h> |
| 7 | #include <linux/virtio_config.h> | 30 | #include <linux/virtio_config.h> |
diff --git a/include/linux/virtio_balloon.h b/include/linux/virtio_balloon.h index a50ecd1b81a2..652dc8bea921 100644 --- a/include/linux/virtio_balloon.h +++ b/include/linux/virtio_balloon.h | |||
| @@ -1,7 +1,30 @@ | |||
| 1 | #ifndef _LINUX_VIRTIO_BALLOON_H | 1 | #ifndef _LINUX_VIRTIO_BALLOON_H |
| 2 | #define _LINUX_VIRTIO_BALLOON_H | 2 | #define _LINUX_VIRTIO_BALLOON_H |
| 3 | /* This header is BSD licensed so anyone can use the definitions to implement | 3 | /* This header is BSD licensed so anyone can use the definitions to implement |
| 4 | * compatible drivers/servers. */ | 4 | * compatible drivers/servers. |
| 5 | * | ||
| 6 | * Redistribution and use in source and binary forms, with or without | ||
| 7 | * modification, are permitted provided that the following conditions | ||
| 8 | * are met: | ||
| 9 | * 1. Redistributions of source code must retain the above copyright | ||
| 10 | * notice, this list of conditions and the following disclaimer. | ||
| 11 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 12 | * notice, this list of conditions and the following disclaimer in the | ||
| 13 | * documentation and/or other materials provided with the distribution. | ||
| 14 | * 3. Neither the name of IBM nor the names of its contributors | ||
| 15 | * may be used to endorse or promote products derived from this software | ||
| 16 | * without specific prior written permission. | ||
| 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND | ||
| 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 20 | * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE | ||
| 21 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 22 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 23 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 24 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 25 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 26 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 27 | * SUCH DAMAGE. */ | ||
| 5 | #include <linux/virtio_ids.h> | 28 | #include <linux/virtio_ids.h> |
| 6 | #include <linux/virtio_config.h> | 29 | #include <linux/virtio_config.h> |
| 7 | 30 | ||
diff --git a/include/linux/virtio_blk.h b/include/linux/virtio_blk.h index 167720d695ed..e0edb40ca7aa 100644 --- a/include/linux/virtio_blk.h +++ b/include/linux/virtio_blk.h | |||
| @@ -1,7 +1,30 @@ | |||
| 1 | #ifndef _LINUX_VIRTIO_BLK_H | 1 | #ifndef _LINUX_VIRTIO_BLK_H |
| 2 | #define _LINUX_VIRTIO_BLK_H | 2 | #define _LINUX_VIRTIO_BLK_H |
| 3 | /* This header is BSD licensed so anyone can use the definitions to implement | 3 | /* This header is BSD licensed so anyone can use the definitions to implement |
| 4 | * compatible drivers/servers. */ | 4 | * compatible drivers/servers. |
| 5 | * | ||
| 6 | * Redistribution and use in source and binary forms, with or without | ||
| 7 | * modification, are permitted provided that the following conditions | ||
| 8 | * are met: | ||
| 9 | * 1. Redistributions of source code must retain the above copyright | ||
| 10 | * notice, this list of conditions and the following disclaimer. | ||
| 11 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 12 | * notice, this list of conditions and the following disclaimer in the | ||
| 13 | * documentation and/or other materials provided with the distribution. | ||
| 14 | * 3. Neither the name of IBM nor the names of its contributors | ||
| 15 | * may be used to endorse or promote products derived from this software | ||
| 16 | * without specific prior written permission. | ||
| 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND | ||
| 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 20 | * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE | ||
| 21 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 22 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 23 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 24 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 25 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 26 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 27 | * SUCH DAMAGE. */ | ||
| 5 | #include <linux/types.h> | 28 | #include <linux/types.h> |
| 6 | #include <linux/virtio_ids.h> | 29 | #include <linux/virtio_ids.h> |
| 7 | #include <linux/virtio_config.h> | 30 | #include <linux/virtio_config.h> |
diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h index 800617b4ddd5..39c88c5ad19d 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h | |||
| @@ -1,7 +1,30 @@ | |||
| 1 | #ifndef _LINUX_VIRTIO_CONFIG_H | 1 | #ifndef _LINUX_VIRTIO_CONFIG_H |
| 2 | #define _LINUX_VIRTIO_CONFIG_H | 2 | #define _LINUX_VIRTIO_CONFIG_H |
| 3 | /* This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so | 3 | /* This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so |
| 4 | * anyone can use the definitions to implement compatible drivers/servers. */ | 4 | * anyone can use the definitions to implement compatible drivers/servers. |
| 5 | * | ||
| 6 | * Redistribution and use in source and binary forms, with or without | ||
| 7 | * modification, are permitted provided that the following conditions | ||
| 8 | * are met: | ||
| 9 | * 1. Redistributions of source code must retain the above copyright | ||
| 10 | * notice, this list of conditions and the following disclaimer. | ||
| 11 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 12 | * notice, this list of conditions and the following disclaimer in the | ||
| 13 | * documentation and/or other materials provided with the distribution. | ||
| 14 | * 3. Neither the name of IBM nor the names of its contributors | ||
| 15 | * may be used to endorse or promote products derived from this software | ||
| 16 | * without specific prior written permission. | ||
| 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND | ||
| 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 20 | * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE | ||
| 21 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 22 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 23 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 24 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 25 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 26 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 27 | * SUCH DAMAGE. */ | ||
| 5 | 28 | ||
| 6 | /* Virtio devices use a standardized configuration space to define their | 29 | /* Virtio devices use a standardized configuration space to define their |
| 7 | * features and pass configuration information, but each implementation can | 30 | * features and pass configuration information, but each implementation can |
diff --git a/include/linux/virtio_console.h b/include/linux/virtio_console.h index e4d333543a33..bdf4b0034739 100644 --- a/include/linux/virtio_console.h +++ b/include/linux/virtio_console.h | |||
| @@ -5,7 +5,31 @@ | |||
| 5 | #include <linux/virtio_config.h> | 5 | #include <linux/virtio_config.h> |
| 6 | /* | 6 | /* |
| 7 | * This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so | 7 | * This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so |
| 8 | * anyone can use the definitions to implement compatible drivers/servers. | 8 | * anyone can use the definitions to implement compatible drivers/servers: |
| 9 | * | ||
| 10 | * | ||
| 11 | * Redistribution and use in source and binary forms, with or without | ||
| 12 | * modification, are permitted provided that the following conditions | ||
| 13 | * are met: | ||
| 14 | * 1. Redistributions of source code must retain the above copyright | ||
| 15 | * notice, this list of conditions and the following disclaimer. | ||
| 16 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 17 | * notice, this list of conditions and the following disclaimer in the | ||
| 18 | * documentation and/or other materials provided with the distribution. | ||
| 19 | * 3. Neither the name of IBM nor the names of its contributors | ||
| 20 | * may be used to endorse or promote products derived from this software | ||
| 21 | * without specific prior written permission. | ||
| 22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND | ||
| 23 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 24 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 25 | * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE | ||
| 26 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 27 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 28 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 29 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 30 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 31 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 32 | * SUCH DAMAGE. | ||
| 9 | * | 33 | * |
| 10 | * Copyright (C) Red Hat, Inc., 2009, 2010, 2011 | 34 | * Copyright (C) Red Hat, Inc., 2009, 2010, 2011 |
| 11 | * Copyright (C) Amit Shah <amit.shah@redhat.com>, 2009, 2010, 2011 | 35 | * Copyright (C) Amit Shah <amit.shah@redhat.com>, 2009, 2010, 2011 |
diff --git a/include/linux/virtio_ids.h b/include/linux/virtio_ids.h index 06660c0a78d7..85bb0bb66ffc 100644 --- a/include/linux/virtio_ids.h +++ b/include/linux/virtio_ids.h | |||
| @@ -5,7 +5,29 @@ | |||
| 5 | * | 5 | * |
| 6 | * This header is BSD licensed so anyone can use the definitions to implement | 6 | * This header is BSD licensed so anyone can use the definitions to implement |
| 7 | * compatible drivers/servers. | 7 | * compatible drivers/servers. |
| 8 | */ | 8 | * |
| 9 | * Redistribution and use in source and binary forms, with or without | ||
| 10 | * modification, are permitted provided that the following conditions | ||
| 11 | * are met: | ||
| 12 | * 1. Redistributions of source code must retain the above copyright | ||
| 13 | * notice, this list of conditions and the following disclaimer. | ||
| 14 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 15 | * notice, this list of conditions and the following disclaimer in the | ||
| 16 | * documentation and/or other materials provided with the distribution. | ||
| 17 | * 3. Neither the name of IBM nor the names of its contributors | ||
| 18 | * may be used to endorse or promote products derived from this software | ||
| 19 | * without specific prior written permission. | ||
| 20 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND | ||
| 21 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 22 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 23 | * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE | ||
| 24 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 25 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 26 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 27 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 28 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 29 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 30 | * SUCH DAMAGE. */ | ||
| 9 | 31 | ||
| 10 | #define VIRTIO_ID_NET 1 /* virtio net */ | 32 | #define VIRTIO_ID_NET 1 /* virtio net */ |
| 11 | #define VIRTIO_ID_BLOCK 2 /* virtio block */ | 33 | #define VIRTIO_ID_BLOCK 2 /* virtio block */ |
diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h index 085e42298ce5..136040bba3e3 100644 --- a/include/linux/virtio_net.h +++ b/include/linux/virtio_net.h | |||
| @@ -1,7 +1,30 @@ | |||
| 1 | #ifndef _LINUX_VIRTIO_NET_H | 1 | #ifndef _LINUX_VIRTIO_NET_H |
| 2 | #define _LINUX_VIRTIO_NET_H | 2 | #define _LINUX_VIRTIO_NET_H |
| 3 | /* This header is BSD licensed so anyone can use the definitions to implement | 3 | /* This header is BSD licensed so anyone can use the definitions to implement |
| 4 | * compatible drivers/servers. */ | 4 | * compatible drivers/servers. |
| 5 | * | ||
| 6 | * Redistribution and use in source and binary forms, with or without | ||
| 7 | * modification, are permitted provided that the following conditions | ||
| 8 | * are met: | ||
| 9 | * 1. Redistributions of source code must retain the above copyright | ||
| 10 | * notice, this list of conditions and the following disclaimer. | ||
| 11 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 12 | * notice, this list of conditions and the following disclaimer in the | ||
| 13 | * documentation and/or other materials provided with the distribution. | ||
| 14 | * 3. Neither the name of IBM nor the names of its contributors | ||
| 15 | * may be used to endorse or promote products derived from this software | ||
| 16 | * without specific prior written permission. | ||
| 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND | ||
| 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 20 | * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE | ||
| 21 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 22 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 23 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 24 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 25 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 26 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 27 | * SUCH DAMAGE. */ | ||
| 5 | #include <linux/types.h> | 28 | #include <linux/types.h> |
| 6 | #include <linux/virtio_ids.h> | 29 | #include <linux/virtio_ids.h> |
| 7 | #include <linux/virtio_config.h> | 30 | #include <linux/virtio_config.h> |
diff --git a/include/linux/virtio_pci.h b/include/linux/virtio_pci.h index 9a3d7c48c622..ea66f3f60d63 100644 --- a/include/linux/virtio_pci.h +++ b/include/linux/virtio_pci.h | |||
| @@ -11,6 +11,29 @@ | |||
| 11 | * | 11 | * |
| 12 | * This header is BSD licensed so anyone can use the definitions to implement | 12 | * This header is BSD licensed so anyone can use the definitions to implement |
| 13 | * compatible drivers/servers. | 13 | * compatible drivers/servers. |
| 14 | * | ||
| 15 | * Redistribution and use in source and binary forms, with or without | ||
| 16 | * modification, are permitted provided that the following conditions | ||
| 17 | * are met: | ||
| 18 | * 1. Redistributions of source code must retain the above copyright | ||
| 19 | * notice, this list of conditions and the following disclaimer. | ||
| 20 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 21 | * notice, this list of conditions and the following disclaimer in the | ||
| 22 | * documentation and/or other materials provided with the distribution. | ||
| 23 | * 3. Neither the name of IBM nor the names of its contributors | ||
| 24 | * may be used to endorse or promote products derived from this software | ||
| 25 | * without specific prior written permission. | ||
| 26 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND | ||
| 27 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 28 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 29 | * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE | ||
| 30 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 31 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 32 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 33 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 34 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 35 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 36 | * SUCH DAMAGE. | ||
| 14 | */ | 37 | */ |
| 15 | 38 | ||
| 16 | #ifndef _LINUX_VIRTIO_PCI_H | 39 | #ifndef _LINUX_VIRTIO_PCI_H |
diff --git a/include/linux/virtio_ring.h b/include/linux/virtio_ring.h index e4d144b132b5..4a32cb6da425 100644 --- a/include/linux/virtio_ring.h +++ b/include/linux/virtio_ring.h | |||
| @@ -7,6 +7,29 @@ | |||
| 7 | * This header is BSD licensed so anyone can use the definitions to implement | 7 | * This header is BSD licensed so anyone can use the definitions to implement |
| 8 | * compatible drivers/servers. | 8 | * compatible drivers/servers. |
| 9 | * | 9 | * |
| 10 | * Redistribution and use in source and binary forms, with or without | ||
| 11 | * modification, are permitted provided that the following conditions | ||
| 12 | * are met: | ||
| 13 | * 1. Redistributions of source code must retain the above copyright | ||
| 14 | * notice, this list of conditions and the following disclaimer. | ||
| 15 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 16 | * notice, this list of conditions and the following disclaimer in the | ||
| 17 | * documentation and/or other materials provided with the distribution. | ||
| 18 | * 3. Neither the name of IBM nor the names of its contributors | ||
| 19 | * may be used to endorse or promote products derived from this software | ||
| 20 | * without specific prior written permission. | ||
| 21 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND | ||
| 22 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 23 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 24 | * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE | ||
| 25 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 26 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 27 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 28 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 29 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 30 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 31 | * SUCH DAMAGE. | ||
| 32 | * | ||
| 10 | * Copyright Rusty Russell IBM Corporation 2007. */ | 33 | * Copyright Rusty Russell IBM Corporation 2007. */ |
| 11 | #include <linux/types.h> | 34 | #include <linux/types.h> |
| 12 | 35 | ||
| @@ -29,6 +52,12 @@ | |||
| 29 | /* We support indirect buffer descriptors */ | 52 | /* We support indirect buffer descriptors */ |
| 30 | #define VIRTIO_RING_F_INDIRECT_DESC 28 | 53 | #define VIRTIO_RING_F_INDIRECT_DESC 28 |
| 31 | 54 | ||
| 55 | /* The Guest publishes the used index for which it expects an interrupt | ||
| 56 | * at the end of the avail ring. Host should ignore the avail->flags field. */ | ||
| 57 | /* The Host publishes the avail index for which it expects a kick | ||
| 58 | * at the end of the used ring. Guest should ignore the used->flags field. */ | ||
| 59 | #define VIRTIO_RING_F_EVENT_IDX 29 | ||
| 60 | |||
| 32 | /* Virtio ring descriptors: 16 bytes. These can chain together via "next". */ | 61 | /* Virtio ring descriptors: 16 bytes. These can chain together via "next". */ |
| 33 | struct vring_desc { | 62 | struct vring_desc { |
| 34 | /* Address (guest-physical). */ | 63 | /* Address (guest-physical). */ |
| @@ -83,6 +112,7 @@ struct vring { | |||
| 83 | * __u16 avail_flags; | 112 | * __u16 avail_flags; |
| 84 | * __u16 avail_idx; | 113 | * __u16 avail_idx; |
| 85 | * __u16 available[num]; | 114 | * __u16 available[num]; |
| 115 | * __u16 used_event_idx; | ||
| 86 | * | 116 | * |
| 87 | * // Padding to the next align boundary. | 117 | * // Padding to the next align boundary. |
| 88 | * char pad[]; | 118 | * char pad[]; |
| @@ -91,8 +121,14 @@ struct vring { | |||
| 91 | * __u16 used_flags; | 121 | * __u16 used_flags; |
| 92 | * __u16 used_idx; | 122 | * __u16 used_idx; |
| 93 | * struct vring_used_elem used[num]; | 123 | * struct vring_used_elem used[num]; |
| 124 | * __u16 avail_event_idx; | ||
| 94 | * }; | 125 | * }; |
| 95 | */ | 126 | */ |
| 127 | /* We publish the used event index at the end of the available ring, and vice | ||
| 128 | * versa. They are at the end for backwards compatibility. */ | ||
| 129 | #define vring_used_event(vr) ((vr)->avail->ring[(vr)->num]) | ||
| 130 | #define vring_avail_event(vr) (*(__u16 *)&(vr)->used->ring[(vr)->num]) | ||
| 131 | |||
| 96 | static inline void vring_init(struct vring *vr, unsigned int num, void *p, | 132 | static inline void vring_init(struct vring *vr, unsigned int num, void *p, |
| 97 | unsigned long align) | 133 | unsigned long align) |
| 98 | { | 134 | { |
| @@ -107,7 +143,21 @@ static inline unsigned vring_size(unsigned int num, unsigned long align) | |||
| 107 | { | 143 | { |
| 108 | return ((sizeof(struct vring_desc) * num + sizeof(__u16) * (2 + num) | 144 | return ((sizeof(struct vring_desc) * num + sizeof(__u16) * (2 + num) |
| 109 | + align - 1) & ~(align - 1)) | 145 | + align - 1) & ~(align - 1)) |
| 110 | + sizeof(__u16) * 2 + sizeof(struct vring_used_elem) * num; | 146 | + sizeof(__u16) * 3 + sizeof(struct vring_used_elem) * num; |
| 147 | } | ||
| 148 | |||
| 149 | /* The following is used with USED_EVENT_IDX and AVAIL_EVENT_IDX */ | ||
| 150 | /* Assuming a given event_idx value from the other size, if | ||
| 151 | * we have just incremented index from old to new_idx, | ||
| 152 | * should we trigger an event? */ | ||
| 153 | static inline int vring_need_event(__u16 event_idx, __u16 new_idx, __u16 old) | ||
| 154 | { | ||
| 155 | /* Note: Xen has similar logic for notification hold-off | ||
| 156 | * in include/xen/interface/io/ring.h with req_event and req_prod | ||
| 157 | * corresponding to event_idx + 1 and new_idx respectively. | ||
| 158 | * Note also that req_event and req_prod in Xen start at 1, | ||
| 159 | * event indexes in virtio start at 0. */ | ||
| 160 | return (__u16)(new_idx - event_idx - 1) < (__u16)(new_idx - old); | ||
| 111 | } | 161 | } |
| 112 | 162 | ||
| 113 | #ifdef __KERNEL__ | 163 | #ifdef __KERNEL__ |
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index 2bf9ed9ef26b..aef430d779bd 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h | |||
| @@ -35,8 +35,11 @@ struct netns_ipvs; | |||
| 35 | #define NETDEV_HASHENTRIES (1 << NETDEV_HASHBITS) | 35 | #define NETDEV_HASHENTRIES (1 << NETDEV_HASHBITS) |
| 36 | 36 | ||
| 37 | struct net { | 37 | struct net { |
| 38 | atomic_t passive; /* To decided when the network | ||
| 39 | * namespace should be freed. | ||
| 40 | */ | ||
| 38 | atomic_t count; /* To decided when the network | 41 | atomic_t count; /* To decided when the network |
| 39 | * namespace should be freed. | 42 | * namespace should be shut down. |
| 40 | */ | 43 | */ |
| 41 | #ifdef NETNS_REFCNT_DEBUG | 44 | #ifdef NETNS_REFCNT_DEBUG |
| 42 | atomic_t use_count; /* To track references we | 45 | atomic_t use_count; /* To track references we |
| @@ -154,6 +157,9 @@ int net_eq(const struct net *net1, const struct net *net2) | |||
| 154 | { | 157 | { |
| 155 | return net1 == net2; | 158 | return net1 == net2; |
| 156 | } | 159 | } |
| 160 | |||
| 161 | extern void net_drop_ns(void *); | ||
| 162 | |||
| 157 | #else | 163 | #else |
| 158 | 164 | ||
| 159 | static inline struct net *get_net(struct net *net) | 165 | static inline struct net *get_net(struct net *net) |
| @@ -175,6 +181,8 @@ int net_eq(const struct net *net1, const struct net *net2) | |||
| 175 | { | 181 | { |
| 176 | return 1; | 182 | return 1; |
| 177 | } | 183 | } |
| 184 | |||
| 185 | #define net_drop_ns NULL | ||
| 178 | #endif | 186 | #endif |
| 179 | 187 | ||
| 180 | 188 | ||
diff --git a/include/net/netfilter/nf_conntrack.h b/include/net/netfilter/nf_conntrack.h index c7c42e7acc31..5d4f8e586e32 100644 --- a/include/net/netfilter/nf_conntrack.h +++ b/include/net/netfilter/nf_conntrack.h | |||
| @@ -307,6 +307,12 @@ static inline int nf_ct_is_untracked(const struct nf_conn *ct) | |||
| 307 | return test_bit(IPS_UNTRACKED_BIT, &ct->status); | 307 | return test_bit(IPS_UNTRACKED_BIT, &ct->status); |
| 308 | } | 308 | } |
| 309 | 309 | ||
| 310 | /* Packet is received from loopback */ | ||
| 311 | static inline bool nf_is_loopback_packet(const struct sk_buff *skb) | ||
| 312 | { | ||
| 313 | return skb->dev && skb->skb_iif && skb->dev->flags & IFF_LOOPBACK; | ||
| 314 | } | ||
| 315 | |||
| 310 | extern int nf_conntrack_set_hashsize(const char *val, struct kernel_param *kp); | 316 | extern int nf_conntrack_set_hashsize(const char *val, struct kernel_param *kp); |
| 311 | extern unsigned int nf_conntrack_htable_size; | 317 | extern unsigned int nf_conntrack_htable_size; |
| 312 | extern unsigned int nf_conntrack_max; | 318 | extern unsigned int nf_conntrack_max; |
diff --git a/include/net/sctp/command.h b/include/net/sctp/command.h index 2b447646ce4b..dd6847e5d6e4 100644 --- a/include/net/sctp/command.h +++ b/include/net/sctp/command.h | |||
| @@ -107,6 +107,7 @@ typedef enum { | |||
| 107 | SCTP_CMD_UPDATE_INITTAG, /* Update peer inittag */ | 107 | SCTP_CMD_UPDATE_INITTAG, /* Update peer inittag */ |
| 108 | SCTP_CMD_SEND_MSG, /* Send the whole use message */ | 108 | SCTP_CMD_SEND_MSG, /* Send the whole use message */ |
| 109 | SCTP_CMD_SEND_NEXT_ASCONF, /* Send the next ASCONF after ACK */ | 109 | SCTP_CMD_SEND_NEXT_ASCONF, /* Send the next ASCONF after ACK */ |
| 110 | SCTP_CMD_PURGE_ASCONF_QUEUE, /* Purge all asconf queues.*/ | ||
| 110 | SCTP_CMD_LAST | 111 | SCTP_CMD_LAST |
| 111 | } sctp_verb_t; | 112 | } sctp_verb_t; |
| 112 | 113 | ||
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index 795f4886e111..7df327a6d564 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
| @@ -1993,7 +1993,7 @@ void sctp_assoc_clean_asconf_ack_cache(const struct sctp_association *asoc); | |||
| 1993 | struct sctp_chunk *sctp_assoc_lookup_asconf_ack( | 1993 | struct sctp_chunk *sctp_assoc_lookup_asconf_ack( |
| 1994 | const struct sctp_association *asoc, | 1994 | const struct sctp_association *asoc, |
| 1995 | __be32 serial); | 1995 | __be32 serial); |
| 1996 | 1996 | void sctp_asconf_queue_teardown(struct sctp_association *asoc); | |
| 1997 | 1997 | ||
| 1998 | int sctp_cmp_addr_exact(const union sctp_addr *ss1, | 1998 | int sctp_cmp_addr_exact(const union sctp_addr *ss1, |
| 1999 | const union sctp_addr *ss2); | 1999 | const union sctp_addr *ss2); |
diff --git a/include/net/sock.h b/include/net/sock.h index f2046e404a61..c0b938cb4b1a 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
| @@ -178,7 +178,6 @@ struct sock_common { | |||
| 178 | * @sk_dst_cache: destination cache | 178 | * @sk_dst_cache: destination cache |
| 179 | * @sk_dst_lock: destination cache lock | 179 | * @sk_dst_lock: destination cache lock |
| 180 | * @sk_policy: flow policy | 180 | * @sk_policy: flow policy |
| 181 | * @sk_rmem_alloc: receive queue bytes committed | ||
| 182 | * @sk_receive_queue: incoming packets | 181 | * @sk_receive_queue: incoming packets |
| 183 | * @sk_wmem_alloc: transmit queue bytes committed | 182 | * @sk_wmem_alloc: transmit queue bytes committed |
| 184 | * @sk_write_queue: Packet sending queue | 183 | * @sk_write_queue: Packet sending queue |
diff --git a/include/sound/sb16_csp.h b/include/sound/sb16_csp.h index 736eac71d053..af1b49e982df 100644 --- a/include/sound/sb16_csp.h +++ b/include/sound/sb16_csp.h | |||
| @@ -99,7 +99,14 @@ struct snd_sb_csp_info { | |||
| 99 | /* get CSP information */ | 99 | /* get CSP information */ |
| 100 | #define SNDRV_SB_CSP_IOCTL_INFO _IOR('H', 0x10, struct snd_sb_csp_info) | 100 | #define SNDRV_SB_CSP_IOCTL_INFO _IOR('H', 0x10, struct snd_sb_csp_info) |
| 101 | /* load microcode to CSP */ | 101 | /* load microcode to CSP */ |
| 102 | #define SNDRV_SB_CSP_IOCTL_LOAD_CODE _IOW('H', 0x11, struct snd_sb_csp_microcode) | 102 | /* NOTE: struct snd_sb_csp_microcode overflows the max size (13 bits) |
| 103 | * defined for some architectures like MIPS, and it leads to build errors. | ||
| 104 | * (x86 and co have 14-bit size, thus it's valid, though.) | ||
| 105 | * As a workaround for skipping the size-limit check, here we don't use the | ||
| 106 | * normal _IOW() macro but _IOC() with the manual argument. | ||
| 107 | */ | ||
| 108 | #define SNDRV_SB_CSP_IOCTL_LOAD_CODE \ | ||
| 109 | _IOC(_IOC_WRITE, 'H', 0x11, sizeof(struct snd_sb_csp_microcode)) | ||
| 103 | /* unload microcode from CSP */ | 110 | /* unload microcode from CSP */ |
| 104 | #define SNDRV_SB_CSP_IOCTL_UNLOAD_CODE _IO('H', 0x12) | 111 | #define SNDRV_SB_CSP_IOCTL_UNLOAD_CODE _IO('H', 0x12) |
| 105 | /* start CSP */ | 112 | /* start CSP */ |
diff --git a/include/sound/soc.h b/include/sound/soc.h index f1de3e0c75bc..3a4bd3a3c68d 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h | |||
| @@ -248,8 +248,7 @@ typedef int (*hw_write_t)(void *,const char* ,int); | |||
| 248 | extern struct snd_ac97_bus_ops soc_ac97_ops; | 248 | extern struct snd_ac97_bus_ops soc_ac97_ops; |
| 249 | 249 | ||
| 250 | enum snd_soc_control_type { | 250 | enum snd_soc_control_type { |
| 251 | SND_SOC_CUSTOM = 1, | 251 | SND_SOC_I2C = 1, |
| 252 | SND_SOC_I2C, | ||
| 253 | SND_SOC_SPI, | 252 | SND_SOC_SPI, |
| 254 | }; | 253 | }; |
| 255 | 254 | ||
diff --git a/include/staging/altera.h b/include/staging/altera.h deleted file mode 100644 index 94c0c6181daf..000000000000 --- a/include/staging/altera.h +++ /dev/null | |||
| @@ -1,49 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * altera.h | ||
| 3 | * | ||
| 4 | * altera FPGA driver | ||
| 5 | * | ||
| 6 | * Copyright (C) Altera Corporation 1998-2001 | ||
| 7 | * Copyright (C) 2010 NetUP Inc. | ||
| 8 | * Copyright (C) 2010 Igor M. Liplianin <liplianin@netup.ru> | ||
| 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 as published by | ||
| 12 | * the Free Software Foundation; either version 2 of the License, or | ||
| 13 | * (at your option) any later version. | ||
| 14 | * | ||
| 15 | * This program is distributed in the hope that it will be useful, | ||
| 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 18 | * | ||
| 19 | * GNU General Public License for more details. | ||
| 20 | * | ||
| 21 | * You should have received a copy of the GNU General Public License | ||
| 22 | * along with this program; if not, write to the Free Software | ||
| 23 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
| 24 | */ | ||
| 25 | |||
| 26 | #ifndef _ALTERA_H_ | ||
| 27 | #define _ALTERA_H_ | ||
| 28 | |||
| 29 | struct altera_config { | ||
| 30 | void *dev; | ||
| 31 | u8 *action; | ||
| 32 | int (*jtag_io) (void *dev, int tms, int tdi, int tdo); | ||
| 33 | }; | ||
| 34 | |||
| 35 | #if defined(CONFIG_ALTERA_STAPL) || \ | ||
| 36 | (defined(CONFIG_ALTERA_STAPL_MODULE) && defined(MODULE)) | ||
| 37 | |||
| 38 | extern int altera_init(struct altera_config *config, const struct firmware *fw); | ||
| 39 | #else | ||
| 40 | |||
| 41 | static inline int altera_init(struct altera_config *config, | ||
| 42 | const struct firmware *fw) | ||
| 43 | { | ||
| 44 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
| 45 | return 0; | ||
| 46 | } | ||
| 47 | #endif /* CONFIG_ALTERA_STAPL */ | ||
| 48 | |||
| 49 | #endif /* _ALTERA_H_ */ | ||
diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h index e09592d2f916..5ce2b2f5f524 100644 --- a/include/trace/events/ext4.h +++ b/include/trace/events/ext4.h | |||
| @@ -26,7 +26,7 @@ TRACE_EVENT(ext4_free_inode, | |||
| 26 | __field( umode_t, mode ) | 26 | __field( umode_t, mode ) |
| 27 | __field( uid_t, uid ) | 27 | __field( uid_t, uid ) |
| 28 | __field( gid_t, gid ) | 28 | __field( gid_t, gid ) |
| 29 | __field( blkcnt_t, blocks ) | 29 | __field( __u64, blocks ) |
| 30 | ), | 30 | ), |
| 31 | 31 | ||
| 32 | TP_fast_assign( | 32 | TP_fast_assign( |
| @@ -40,9 +40,8 @@ TRACE_EVENT(ext4_free_inode, | |||
| 40 | 40 | ||
| 41 | TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %llu", | 41 | TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %llu", |
| 42 | MAJOR(__entry->dev), MINOR(__entry->dev), | 42 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 43 | (unsigned long) __entry->ino, | 43 | (unsigned long) __entry->ino, __entry->mode, |
| 44 | __entry->mode, __entry->uid, __entry->gid, | 44 | __entry->uid, __entry->gid, __entry->blocks) |
| 45 | (unsigned long long) __entry->blocks) | ||
| 46 | ); | 45 | ); |
| 47 | 46 | ||
| 48 | TRACE_EVENT(ext4_request_inode, | 47 | TRACE_EVENT(ext4_request_inode, |
| @@ -178,7 +177,7 @@ TRACE_EVENT(ext4_begin_ordered_truncate, | |||
| 178 | TP_printk("dev %d,%d ino %lu new_size %lld", | 177 | TP_printk("dev %d,%d ino %lu new_size %lld", |
| 179 | MAJOR(__entry->dev), MINOR(__entry->dev), | 178 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 180 | (unsigned long) __entry->ino, | 179 | (unsigned long) __entry->ino, |
| 181 | (long long) __entry->new_size) | 180 | __entry->new_size) |
| 182 | ); | 181 | ); |
| 183 | 182 | ||
| 184 | DECLARE_EVENT_CLASS(ext4__write_begin, | 183 | DECLARE_EVENT_CLASS(ext4__write_begin, |
| @@ -204,7 +203,7 @@ DECLARE_EVENT_CLASS(ext4__write_begin, | |||
| 204 | __entry->flags = flags; | 203 | __entry->flags = flags; |
| 205 | ), | 204 | ), |
| 206 | 205 | ||
| 207 | TP_printk("dev %d,%d ino %lu pos %llu len %u flags %u", | 206 | TP_printk("dev %d,%d ino %lu pos %lld len %u flags %u", |
| 208 | MAJOR(__entry->dev), MINOR(__entry->dev), | 207 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 209 | (unsigned long) __entry->ino, | 208 | (unsigned long) __entry->ino, |
| 210 | __entry->pos, __entry->len, __entry->flags) | 209 | __entry->pos, __entry->len, __entry->flags) |
| @@ -248,7 +247,7 @@ DECLARE_EVENT_CLASS(ext4__write_end, | |||
| 248 | __entry->copied = copied; | 247 | __entry->copied = copied; |
| 249 | ), | 248 | ), |
| 250 | 249 | ||
| 251 | TP_printk("dev %d,%d ino %lu pos %llu len %u copied %u", | 250 | TP_printk("dev %d,%d ino %lu pos %lld len %u copied %u", |
| 252 | MAJOR(__entry->dev), MINOR(__entry->dev), | 251 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 253 | (unsigned long) __entry->ino, | 252 | (unsigned long) __entry->ino, |
| 254 | __entry->pos, __entry->len, __entry->copied) | 253 | __entry->pos, __entry->len, __entry->copied) |
| @@ -286,29 +285,6 @@ DEFINE_EVENT(ext4__write_end, ext4_da_write_end, | |||
| 286 | TP_ARGS(inode, pos, len, copied) | 285 | TP_ARGS(inode, pos, len, copied) |
| 287 | ); | 286 | ); |
| 288 | 287 | ||
| 289 | TRACE_EVENT(ext4_writepage, | ||
| 290 | TP_PROTO(struct inode *inode, struct page *page), | ||
| 291 | |||
| 292 | TP_ARGS(inode, page), | ||
| 293 | |||
| 294 | TP_STRUCT__entry( | ||
| 295 | __field( dev_t, dev ) | ||
| 296 | __field( ino_t, ino ) | ||
| 297 | __field( pgoff_t, index ) | ||
| 298 | |||
| 299 | ), | ||
| 300 | |||
| 301 | TP_fast_assign( | ||
| 302 | __entry->dev = inode->i_sb->s_dev; | ||
| 303 | __entry->ino = inode->i_ino; | ||
| 304 | __entry->index = page->index; | ||
| 305 | ), | ||
| 306 | |||
| 307 | TP_printk("dev %d,%d ino %lu page_index %lu", | ||
| 308 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
| 309 | (unsigned long) __entry->ino, __entry->index) | ||
| 310 | ); | ||
| 311 | |||
| 312 | TRACE_EVENT(ext4_da_writepages, | 288 | TRACE_EVENT(ext4_da_writepages, |
| 313 | TP_PROTO(struct inode *inode, struct writeback_control *wbc), | 289 | TP_PROTO(struct inode *inode, struct writeback_control *wbc), |
| 314 | 290 | ||
| @@ -341,7 +317,7 @@ TRACE_EVENT(ext4_da_writepages, | |||
| 341 | ), | 317 | ), |
| 342 | 318 | ||
| 343 | TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld " | 319 | TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld " |
| 344 | "range_start %llu range_end %llu sync_mode %d" | 320 | "range_start %lld range_end %lld sync_mode %d" |
| 345 | "for_kupdate %d range_cyclic %d writeback_index %lu", | 321 | "for_kupdate %d range_cyclic %d writeback_index %lu", |
| 346 | MAJOR(__entry->dev), MINOR(__entry->dev), | 322 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 347 | (unsigned long) __entry->ino, __entry->nr_to_write, | 323 | (unsigned long) __entry->ino, __entry->nr_to_write, |
| @@ -449,7 +425,14 @@ DECLARE_EVENT_CLASS(ext4__page_op, | |||
| 449 | TP_printk("dev %d,%d ino %lu page_index %lu", | 425 | TP_printk("dev %d,%d ino %lu page_index %lu", |
| 450 | MAJOR(__entry->dev), MINOR(__entry->dev), | 426 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 451 | (unsigned long) __entry->ino, | 427 | (unsigned long) __entry->ino, |
| 452 | __entry->index) | 428 | (unsigned long) __entry->index) |
| 429 | ); | ||
| 430 | |||
| 431 | DEFINE_EVENT(ext4__page_op, ext4_writepage, | ||
| 432 | |||
| 433 | TP_PROTO(struct page *page), | ||
| 434 | |||
| 435 | TP_ARGS(page) | ||
| 453 | ); | 436 | ); |
| 454 | 437 | ||
| 455 | DEFINE_EVENT(ext4__page_op, ext4_readpage, | 438 | DEFINE_EVENT(ext4__page_op, ext4_readpage, |
| @@ -489,7 +472,7 @@ TRACE_EVENT(ext4_invalidatepage, | |||
| 489 | TP_printk("dev %d,%d ino %lu page_index %lu offset %lu", | 472 | TP_printk("dev %d,%d ino %lu page_index %lu offset %lu", |
| 490 | MAJOR(__entry->dev), MINOR(__entry->dev), | 473 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 491 | (unsigned long) __entry->ino, | 474 | (unsigned long) __entry->ino, |
| 492 | __entry->index, __entry->offset) | 475 | (unsigned long) __entry->index, __entry->offset) |
| 493 | ); | 476 | ); |
| 494 | 477 | ||
| 495 | TRACE_EVENT(ext4_discard_blocks, | 478 | TRACE_EVENT(ext4_discard_blocks, |
| @@ -562,12 +545,10 @@ DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_group_pa, | |||
| 562 | ); | 545 | ); |
| 563 | 546 | ||
| 564 | TRACE_EVENT(ext4_mb_release_inode_pa, | 547 | TRACE_EVENT(ext4_mb_release_inode_pa, |
| 565 | TP_PROTO(struct super_block *sb, | 548 | TP_PROTO(struct ext4_prealloc_space *pa, |
| 566 | struct inode *inode, | ||
| 567 | struct ext4_prealloc_space *pa, | ||
| 568 | unsigned long long block, unsigned int count), | 549 | unsigned long long block, unsigned int count), |
| 569 | 550 | ||
| 570 | TP_ARGS(sb, inode, pa, block, count), | 551 | TP_ARGS(pa, block, count), |
| 571 | 552 | ||
| 572 | TP_STRUCT__entry( | 553 | TP_STRUCT__entry( |
| 573 | __field( dev_t, dev ) | 554 | __field( dev_t, dev ) |
| @@ -578,8 +559,8 @@ TRACE_EVENT(ext4_mb_release_inode_pa, | |||
| 578 | ), | 559 | ), |
| 579 | 560 | ||
| 580 | TP_fast_assign( | 561 | TP_fast_assign( |
| 581 | __entry->dev = sb->s_dev; | 562 | __entry->dev = pa->pa_inode->i_sb->s_dev; |
| 582 | __entry->ino = inode->i_ino; | 563 | __entry->ino = pa->pa_inode->i_ino; |
| 583 | __entry->block = block; | 564 | __entry->block = block; |
| 584 | __entry->count = count; | 565 | __entry->count = count; |
| 585 | ), | 566 | ), |
| @@ -591,10 +572,9 @@ TRACE_EVENT(ext4_mb_release_inode_pa, | |||
| 591 | ); | 572 | ); |
| 592 | 573 | ||
| 593 | TRACE_EVENT(ext4_mb_release_group_pa, | 574 | TRACE_EVENT(ext4_mb_release_group_pa, |
| 594 | TP_PROTO(struct super_block *sb, | 575 | TP_PROTO(struct ext4_prealloc_space *pa), |
| 595 | struct ext4_prealloc_space *pa), | ||
| 596 | 576 | ||
| 597 | TP_ARGS(sb, pa), | 577 | TP_ARGS(pa), |
| 598 | 578 | ||
| 599 | TP_STRUCT__entry( | 579 | TP_STRUCT__entry( |
| 600 | __field( dev_t, dev ) | 580 | __field( dev_t, dev ) |
| @@ -604,7 +584,7 @@ TRACE_EVENT(ext4_mb_release_group_pa, | |||
| 604 | ), | 584 | ), |
| 605 | 585 | ||
| 606 | TP_fast_assign( | 586 | TP_fast_assign( |
| 607 | __entry->dev = sb->s_dev; | 587 | __entry->dev = pa->pa_inode->i_sb->s_dev; |
| 608 | __entry->pa_pstart = pa->pa_pstart; | 588 | __entry->pa_pstart = pa->pa_pstart; |
| 609 | __entry->pa_len = pa->pa_len; | 589 | __entry->pa_len = pa->pa_len; |
| 610 | ), | 590 | ), |
| @@ -666,10 +646,10 @@ TRACE_EVENT(ext4_request_blocks, | |||
| 666 | __field( ino_t, ino ) | 646 | __field( ino_t, ino ) |
| 667 | __field( unsigned int, flags ) | 647 | __field( unsigned int, flags ) |
| 668 | __field( unsigned int, len ) | 648 | __field( unsigned int, len ) |
| 669 | __field( __u64, logical ) | 649 | __field( __u32, logical ) |
| 650 | __field( __u32, lleft ) | ||
| 651 | __field( __u32, lright ) | ||
| 670 | __field( __u64, goal ) | 652 | __field( __u64, goal ) |
| 671 | __field( __u64, lleft ) | ||
| 672 | __field( __u64, lright ) | ||
| 673 | __field( __u64, pleft ) | 653 | __field( __u64, pleft ) |
| 674 | __field( __u64, pright ) | 654 | __field( __u64, pright ) |
| 675 | ), | 655 | ), |
| @@ -687,17 +667,13 @@ TRACE_EVENT(ext4_request_blocks, | |||
| 687 | __entry->pright = ar->pright; | 667 | __entry->pright = ar->pright; |
| 688 | ), | 668 | ), |
| 689 | 669 | ||
| 690 | TP_printk("dev %d,%d ino %lu flags %u len %u lblk %llu goal %llu " | 670 | TP_printk("dev %d,%d ino %lu flags %u len %u lblk %u goal %llu " |
| 691 | "lleft %llu lright %llu pleft %llu pright %llu ", | 671 | "lleft %u lright %u pleft %llu pright %llu ", |
| 692 | MAJOR(__entry->dev), MINOR(__entry->dev), | 672 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 693 | (unsigned long) __entry->ino, | 673 | (unsigned long) __entry->ino, __entry->flags, |
| 694 | __entry->flags, __entry->len, | 674 | __entry->len, __entry->logical, __entry->goal, |
| 695 | (unsigned long long) __entry->logical, | 675 | __entry->lleft, __entry->lright, __entry->pleft, |
| 696 | (unsigned long long) __entry->goal, | 676 | __entry->pright) |
| 697 | (unsigned long long) __entry->lleft, | ||
| 698 | (unsigned long long) __entry->lright, | ||
| 699 | (unsigned long long) __entry->pleft, | ||
| 700 | (unsigned long long) __entry->pright) | ||
| 701 | ); | 677 | ); |
| 702 | 678 | ||
| 703 | TRACE_EVENT(ext4_allocate_blocks, | 679 | TRACE_EVENT(ext4_allocate_blocks, |
| @@ -711,10 +687,10 @@ TRACE_EVENT(ext4_allocate_blocks, | |||
| 711 | __field( __u64, block ) | 687 | __field( __u64, block ) |
| 712 | __field( unsigned int, flags ) | 688 | __field( unsigned int, flags ) |
| 713 | __field( unsigned int, len ) | 689 | __field( unsigned int, len ) |
| 714 | __field( __u64, logical ) | 690 | __field( __u32, logical ) |
| 691 | __field( __u32, lleft ) | ||
| 692 | __field( __u32, lright ) | ||
| 715 | __field( __u64, goal ) | 693 | __field( __u64, goal ) |
| 716 | __field( __u64, lleft ) | ||
| 717 | __field( __u64, lright ) | ||
| 718 | __field( __u64, pleft ) | 694 | __field( __u64, pleft ) |
| 719 | __field( __u64, pright ) | 695 | __field( __u64, pright ) |
| 720 | ), | 696 | ), |
| @@ -733,17 +709,13 @@ TRACE_EVENT(ext4_allocate_blocks, | |||
| 733 | __entry->pright = ar->pright; | 709 | __entry->pright = ar->pright; |
| 734 | ), | 710 | ), |
| 735 | 711 | ||
| 736 | TP_printk("dev %d,%d ino %lu flags %u len %u block %llu lblk %llu " | 712 | TP_printk("dev %d,%d ino %lu flags %u len %u block %llu lblk %u " |
| 737 | "goal %llu lleft %llu lright %llu pleft %llu pright %llu", | 713 | "goal %llu lleft %u lright %u pleft %llu pright %llu", |
| 738 | MAJOR(__entry->dev), MINOR(__entry->dev), | 714 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 739 | (unsigned long) __entry->ino, | 715 | (unsigned long) __entry->ino, __entry->flags, |
| 740 | __entry->flags, __entry->len, __entry->block, | 716 | __entry->len, __entry->block, __entry->logical, |
| 741 | (unsigned long long) __entry->logical, | 717 | __entry->goal, __entry->lleft, __entry->lright, |
| 742 | (unsigned long long) __entry->goal, | 718 | __entry->pleft, __entry->pright) |
| 743 | (unsigned long long) __entry->lleft, | ||
| 744 | (unsigned long long) __entry->lright, | ||
| 745 | (unsigned long long) __entry->pleft, | ||
| 746 | (unsigned long long) __entry->pright) | ||
| 747 | ); | 719 | ); |
| 748 | 720 | ||
| 749 | TRACE_EVENT(ext4_free_blocks, | 721 | TRACE_EVENT(ext4_free_blocks, |
| @@ -755,10 +727,10 @@ TRACE_EVENT(ext4_free_blocks, | |||
| 755 | TP_STRUCT__entry( | 727 | TP_STRUCT__entry( |
| 756 | __field( dev_t, dev ) | 728 | __field( dev_t, dev ) |
| 757 | __field( ino_t, ino ) | 729 | __field( ino_t, ino ) |
| 758 | __field( umode_t, mode ) | 730 | __field( umode_t, mode ) |
| 759 | __field( __u64, block ) | 731 | __field( __u64, block ) |
| 760 | __field( unsigned long, count ) | 732 | __field( unsigned long, count ) |
| 761 | __field( int, flags ) | 733 | __field( int, flags ) |
| 762 | ), | 734 | ), |
| 763 | 735 | ||
| 764 | TP_fast_assign( | 736 | TP_fast_assign( |
| @@ -798,7 +770,7 @@ TRACE_EVENT(ext4_sync_file_enter, | |||
| 798 | __entry->parent = dentry->d_parent->d_inode->i_ino; | 770 | __entry->parent = dentry->d_parent->d_inode->i_ino; |
| 799 | ), | 771 | ), |
| 800 | 772 | ||
| 801 | TP_printk("dev %d,%d ino %ld parent %ld datasync %d ", | 773 | TP_printk("dev %d,%d ino %lu parent %lu datasync %d ", |
| 802 | MAJOR(__entry->dev), MINOR(__entry->dev), | 774 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 803 | (unsigned long) __entry->ino, | 775 | (unsigned long) __entry->ino, |
| 804 | (unsigned long) __entry->parent, __entry->datasync) | 776 | (unsigned long) __entry->parent, __entry->datasync) |
| @@ -821,7 +793,7 @@ TRACE_EVENT(ext4_sync_file_exit, | |||
| 821 | __entry->dev = inode->i_sb->s_dev; | 793 | __entry->dev = inode->i_sb->s_dev; |
| 822 | ), | 794 | ), |
| 823 | 795 | ||
| 824 | TP_printk("dev %d,%d ino %ld ret %d", | 796 | TP_printk("dev %d,%d ino %lu ret %d", |
| 825 | MAJOR(__entry->dev), MINOR(__entry->dev), | 797 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 826 | (unsigned long) __entry->ino, | 798 | (unsigned long) __entry->ino, |
| 827 | __entry->ret) | 799 | __entry->ret) |
| @@ -1005,7 +977,7 @@ DECLARE_EVENT_CLASS(ext4__mballoc, | |||
| 1005 | __entry->result_len = len; | 977 | __entry->result_len = len; |
| 1006 | ), | 978 | ), |
| 1007 | 979 | ||
| 1008 | TP_printk("dev %d,%d inode %lu extent %u/%d/%u ", | 980 | TP_printk("dev %d,%d inode %lu extent %u/%d/%d ", |
| 1009 | MAJOR(__entry->dev), MINOR(__entry->dev), | 981 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 1010 | (unsigned long) __entry->ino, | 982 | (unsigned long) __entry->ino, |
| 1011 | __entry->result_group, __entry->result_start, | 983 | __entry->result_group, __entry->result_start, |
| @@ -1093,7 +1065,7 @@ TRACE_EVENT(ext4_da_update_reserve_space, | |||
| 1093 | "allocated_meta_blocks %d", | 1065 | "allocated_meta_blocks %d", |
| 1094 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1066 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 1095 | (unsigned long) __entry->ino, | 1067 | (unsigned long) __entry->ino, |
| 1096 | __entry->mode, (unsigned long long) __entry->i_blocks, | 1068 | __entry->mode, __entry->i_blocks, |
| 1097 | __entry->used_blocks, __entry->reserved_data_blocks, | 1069 | __entry->used_blocks, __entry->reserved_data_blocks, |
| 1098 | __entry->reserved_meta_blocks, __entry->allocated_meta_blocks) | 1070 | __entry->reserved_meta_blocks, __entry->allocated_meta_blocks) |
| 1099 | ); | 1071 | ); |
| @@ -1127,7 +1099,7 @@ TRACE_EVENT(ext4_da_reserve_space, | |||
| 1127 | "reserved_data_blocks %d reserved_meta_blocks %d", | 1099 | "reserved_data_blocks %d reserved_meta_blocks %d", |
| 1128 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1100 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 1129 | (unsigned long) __entry->ino, | 1101 | (unsigned long) __entry->ino, |
| 1130 | __entry->mode, (unsigned long long) __entry->i_blocks, | 1102 | __entry->mode, __entry->i_blocks, |
| 1131 | __entry->md_needed, __entry->reserved_data_blocks, | 1103 | __entry->md_needed, __entry->reserved_data_blocks, |
| 1132 | __entry->reserved_meta_blocks) | 1104 | __entry->reserved_meta_blocks) |
| 1133 | ); | 1105 | ); |
| @@ -1164,7 +1136,7 @@ TRACE_EVENT(ext4_da_release_space, | |||
| 1164 | "allocated_meta_blocks %d", | 1136 | "allocated_meta_blocks %d", |
| 1165 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1137 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 1166 | (unsigned long) __entry->ino, | 1138 | (unsigned long) __entry->ino, |
| 1167 | __entry->mode, (unsigned long long) __entry->i_blocks, | 1139 | __entry->mode, __entry->i_blocks, |
| 1168 | __entry->freed_blocks, __entry->reserved_data_blocks, | 1140 | __entry->freed_blocks, __entry->reserved_data_blocks, |
| 1169 | __entry->reserved_meta_blocks, __entry->allocated_meta_blocks) | 1141 | __entry->reserved_meta_blocks, __entry->allocated_meta_blocks) |
| 1170 | ); | 1142 | ); |
| @@ -1239,14 +1211,15 @@ TRACE_EVENT(ext4_direct_IO_enter, | |||
| 1239 | __entry->rw = rw; | 1211 | __entry->rw = rw; |
| 1240 | ), | 1212 | ), |
| 1241 | 1213 | ||
| 1242 | TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d", | 1214 | TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d", |
| 1243 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1215 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 1244 | (unsigned long) __entry->ino, | 1216 | (unsigned long) __entry->ino, |
| 1245 | (unsigned long long) __entry->pos, __entry->len, __entry->rw) | 1217 | __entry->pos, __entry->len, __entry->rw) |
| 1246 | ); | 1218 | ); |
| 1247 | 1219 | ||
| 1248 | TRACE_EVENT(ext4_direct_IO_exit, | 1220 | TRACE_EVENT(ext4_direct_IO_exit, |
| 1249 | TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw, int ret), | 1221 | TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, |
| 1222 | int rw, int ret), | ||
| 1250 | 1223 | ||
| 1251 | TP_ARGS(inode, offset, len, rw, ret), | 1224 | TP_ARGS(inode, offset, len, rw, ret), |
| 1252 | 1225 | ||
| @@ -1268,10 +1241,10 @@ TRACE_EVENT(ext4_direct_IO_exit, | |||
| 1268 | __entry->ret = ret; | 1241 | __entry->ret = ret; |
| 1269 | ), | 1242 | ), |
| 1270 | 1243 | ||
| 1271 | TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d ret %d", | 1244 | TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d ret %d", |
| 1272 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1245 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 1273 | (unsigned long) __entry->ino, | 1246 | (unsigned long) __entry->ino, |
| 1274 | (unsigned long long) __entry->pos, __entry->len, | 1247 | __entry->pos, __entry->len, |
| 1275 | __entry->rw, __entry->ret) | 1248 | __entry->rw, __entry->ret) |
| 1276 | ); | 1249 | ); |
| 1277 | 1250 | ||
| @@ -1296,15 +1269,15 @@ TRACE_EVENT(ext4_fallocate_enter, | |||
| 1296 | __entry->mode = mode; | 1269 | __entry->mode = mode; |
| 1297 | ), | 1270 | ), |
| 1298 | 1271 | ||
| 1299 | TP_printk("dev %d,%d ino %ld pos %llu len %llu mode %d", | 1272 | TP_printk("dev %d,%d ino %lu pos %lld len %lld mode %d", |
| 1300 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1273 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 1301 | (unsigned long) __entry->ino, | 1274 | (unsigned long) __entry->ino, __entry->pos, |
| 1302 | (unsigned long long) __entry->pos, | 1275 | __entry->len, __entry->mode) |
| 1303 | (unsigned long long) __entry->len, __entry->mode) | ||
| 1304 | ); | 1276 | ); |
| 1305 | 1277 | ||
| 1306 | TRACE_EVENT(ext4_fallocate_exit, | 1278 | TRACE_EVENT(ext4_fallocate_exit, |
| 1307 | TP_PROTO(struct inode *inode, loff_t offset, unsigned int max_blocks, int ret), | 1279 | TP_PROTO(struct inode *inode, loff_t offset, |
| 1280 | unsigned int max_blocks, int ret), | ||
| 1308 | 1281 | ||
| 1309 | TP_ARGS(inode, offset, max_blocks, ret), | 1282 | TP_ARGS(inode, offset, max_blocks, ret), |
| 1310 | 1283 | ||
| @@ -1312,7 +1285,7 @@ TRACE_EVENT(ext4_fallocate_exit, | |||
| 1312 | __field( ino_t, ino ) | 1285 | __field( ino_t, ino ) |
| 1313 | __field( dev_t, dev ) | 1286 | __field( dev_t, dev ) |
| 1314 | __field( loff_t, pos ) | 1287 | __field( loff_t, pos ) |
| 1315 | __field( unsigned, blocks ) | 1288 | __field( unsigned int, blocks ) |
| 1316 | __field( int, ret ) | 1289 | __field( int, ret ) |
| 1317 | ), | 1290 | ), |
| 1318 | 1291 | ||
| @@ -1324,10 +1297,10 @@ TRACE_EVENT(ext4_fallocate_exit, | |||
| 1324 | __entry->ret = ret; | 1297 | __entry->ret = ret; |
| 1325 | ), | 1298 | ), |
| 1326 | 1299 | ||
| 1327 | TP_printk("dev %d,%d ino %ld pos %llu blocks %d ret %d", | 1300 | TP_printk("dev %d,%d ino %lu pos %lld blocks %u ret %d", |
| 1328 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1301 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 1329 | (unsigned long) __entry->ino, | 1302 | (unsigned long) __entry->ino, |
| 1330 | (unsigned long long) __entry->pos, __entry->blocks, | 1303 | __entry->pos, __entry->blocks, |
| 1331 | __entry->ret) | 1304 | __entry->ret) |
| 1332 | ); | 1305 | ); |
| 1333 | 1306 | ||
| @@ -1350,7 +1323,7 @@ TRACE_EVENT(ext4_unlink_enter, | |||
| 1350 | __entry->dev = dentry->d_inode->i_sb->s_dev; | 1323 | __entry->dev = dentry->d_inode->i_sb->s_dev; |
| 1351 | ), | 1324 | ), |
| 1352 | 1325 | ||
| 1353 | TP_printk("dev %d,%d ino %ld size %lld parent %ld", | 1326 | TP_printk("dev %d,%d ino %lu size %lld parent %lu", |
| 1354 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1327 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 1355 | (unsigned long) __entry->ino, __entry->size, | 1328 | (unsigned long) __entry->ino, __entry->size, |
| 1356 | (unsigned long) __entry->parent) | 1329 | (unsigned long) __entry->parent) |
| @@ -1373,7 +1346,7 @@ TRACE_EVENT(ext4_unlink_exit, | |||
| 1373 | __entry->ret = ret; | 1346 | __entry->ret = ret; |
| 1374 | ), | 1347 | ), |
| 1375 | 1348 | ||
| 1376 | TP_printk("dev %d,%d ino %ld ret %d", | 1349 | TP_printk("dev %d,%d ino %lu ret %d", |
| 1377 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1350 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 1378 | (unsigned long) __entry->ino, | 1351 | (unsigned long) __entry->ino, |
| 1379 | __entry->ret) | 1352 | __entry->ret) |
| @@ -1387,7 +1360,7 @@ DECLARE_EVENT_CLASS(ext4__truncate, | |||
| 1387 | TP_STRUCT__entry( | 1360 | TP_STRUCT__entry( |
| 1388 | __field( ino_t, ino ) | 1361 | __field( ino_t, ino ) |
| 1389 | __field( dev_t, dev ) | 1362 | __field( dev_t, dev ) |
| 1390 | __field( blkcnt_t, blocks ) | 1363 | __field( __u64, blocks ) |
| 1391 | ), | 1364 | ), |
| 1392 | 1365 | ||
| 1393 | TP_fast_assign( | 1366 | TP_fast_assign( |
| @@ -1396,9 +1369,9 @@ DECLARE_EVENT_CLASS(ext4__truncate, | |||
| 1396 | __entry->blocks = inode->i_blocks; | 1369 | __entry->blocks = inode->i_blocks; |
| 1397 | ), | 1370 | ), |
| 1398 | 1371 | ||
| 1399 | TP_printk("dev %d,%d ino %lu blocks %lu", | 1372 | TP_printk("dev %d,%d ino %lu blocks %llu", |
| 1400 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1373 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 1401 | (unsigned long) __entry->ino, (unsigned long) __entry->blocks) | 1374 | (unsigned long) __entry->ino, __entry->blocks) |
| 1402 | ); | 1375 | ); |
| 1403 | 1376 | ||
| 1404 | DEFINE_EVENT(ext4__truncate, ext4_truncate_enter, | 1377 | DEFINE_EVENT(ext4__truncate, ext4_truncate_enter, |
| @@ -1417,7 +1390,7 @@ DEFINE_EVENT(ext4__truncate, ext4_truncate_exit, | |||
| 1417 | 1390 | ||
| 1418 | DECLARE_EVENT_CLASS(ext4__map_blocks_enter, | 1391 | DECLARE_EVENT_CLASS(ext4__map_blocks_enter, |
| 1419 | TP_PROTO(struct inode *inode, ext4_lblk_t lblk, | 1392 | TP_PROTO(struct inode *inode, ext4_lblk_t lblk, |
| 1420 | unsigned len, unsigned flags), | 1393 | unsigned int len, unsigned int flags), |
| 1421 | 1394 | ||
| 1422 | TP_ARGS(inode, lblk, len, flags), | 1395 | TP_ARGS(inode, lblk, len, flags), |
| 1423 | 1396 | ||
| @@ -1425,8 +1398,8 @@ DECLARE_EVENT_CLASS(ext4__map_blocks_enter, | |||
| 1425 | __field( ino_t, ino ) | 1398 | __field( ino_t, ino ) |
| 1426 | __field( dev_t, dev ) | 1399 | __field( dev_t, dev ) |
| 1427 | __field( ext4_lblk_t, lblk ) | 1400 | __field( ext4_lblk_t, lblk ) |
| 1428 | __field( unsigned, len ) | 1401 | __field( unsigned int, len ) |
| 1429 | __field( unsigned, flags ) | 1402 | __field( unsigned int, flags ) |
| 1430 | ), | 1403 | ), |
| 1431 | 1404 | ||
| 1432 | TP_fast_assign( | 1405 | TP_fast_assign( |
| @@ -1440,7 +1413,7 @@ DECLARE_EVENT_CLASS(ext4__map_blocks_enter, | |||
| 1440 | TP_printk("dev %d,%d ino %lu lblk %u len %u flags %u", | 1413 | TP_printk("dev %d,%d ino %lu lblk %u len %u flags %u", |
| 1441 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1414 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 1442 | (unsigned long) __entry->ino, | 1415 | (unsigned long) __entry->ino, |
| 1443 | (unsigned) __entry->lblk, __entry->len, __entry->flags) | 1416 | __entry->lblk, __entry->len, __entry->flags) |
| 1444 | ); | 1417 | ); |
| 1445 | 1418 | ||
| 1446 | DEFINE_EVENT(ext4__map_blocks_enter, ext4_ext_map_blocks_enter, | 1419 | DEFINE_EVENT(ext4__map_blocks_enter, ext4_ext_map_blocks_enter, |
| @@ -1459,7 +1432,7 @@ DEFINE_EVENT(ext4__map_blocks_enter, ext4_ind_map_blocks_enter, | |||
| 1459 | 1432 | ||
| 1460 | DECLARE_EVENT_CLASS(ext4__map_blocks_exit, | 1433 | DECLARE_EVENT_CLASS(ext4__map_blocks_exit, |
| 1461 | TP_PROTO(struct inode *inode, ext4_lblk_t lblk, | 1434 | TP_PROTO(struct inode *inode, ext4_lblk_t lblk, |
| 1462 | ext4_fsblk_t pblk, unsigned len, int ret), | 1435 | ext4_fsblk_t pblk, unsigned int len, int ret), |
| 1463 | 1436 | ||
| 1464 | TP_ARGS(inode, lblk, pblk, len, ret), | 1437 | TP_ARGS(inode, lblk, pblk, len, ret), |
| 1465 | 1438 | ||
| @@ -1468,7 +1441,7 @@ DECLARE_EVENT_CLASS(ext4__map_blocks_exit, | |||
| 1468 | __field( dev_t, dev ) | 1441 | __field( dev_t, dev ) |
| 1469 | __field( ext4_lblk_t, lblk ) | 1442 | __field( ext4_lblk_t, lblk ) |
| 1470 | __field( ext4_fsblk_t, pblk ) | 1443 | __field( ext4_fsblk_t, pblk ) |
| 1471 | __field( unsigned, len ) | 1444 | __field( unsigned int, len ) |
| 1472 | __field( int, ret ) | 1445 | __field( int, ret ) |
| 1473 | ), | 1446 | ), |
| 1474 | 1447 | ||
| @@ -1484,7 +1457,7 @@ DECLARE_EVENT_CLASS(ext4__map_blocks_exit, | |||
| 1484 | TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u ret %d", | 1457 | TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u ret %d", |
| 1485 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1458 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 1486 | (unsigned long) __entry->ino, | 1459 | (unsigned long) __entry->ino, |
| 1487 | (unsigned) __entry->lblk, (unsigned long long) __entry->pblk, | 1460 | __entry->lblk, __entry->pblk, |
| 1488 | __entry->len, __entry->ret) | 1461 | __entry->len, __entry->ret) |
| 1489 | ); | 1462 | ); |
| 1490 | 1463 | ||
| @@ -1524,7 +1497,7 @@ TRACE_EVENT(ext4_ext_load_extent, | |||
| 1524 | TP_printk("dev %d,%d ino %lu lblk %u pblk %llu", | 1497 | TP_printk("dev %d,%d ino %lu lblk %u pblk %llu", |
| 1525 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1498 | MAJOR(__entry->dev), MINOR(__entry->dev), |
| 1526 | (unsigned long) __entry->ino, | 1499 | (unsigned long) __entry->ino, |
| 1527 | (unsigned) __entry->lblk, (unsigned long long) __entry->pblk) | 1500 | __entry->lblk, __entry->pblk) |
| 1528 | ); | 1501 | ); |
| 1529 | 1502 | ||
| 1530 | TRACE_EVENT(ext4_load_inode, | 1503 | TRACE_EVENT(ext4_load_inode, |
diff --git a/include/trace/events/irq.h b/include/trace/events/irq.h index ae045ca7d356..1c09820df585 100644 --- a/include/trace/events/irq.h +++ b/include/trace/events/irq.h | |||
| @@ -20,7 +20,8 @@ struct softirq_action; | |||
| 20 | softirq_name(BLOCK_IOPOLL), \ | 20 | softirq_name(BLOCK_IOPOLL), \ |
| 21 | softirq_name(TASKLET), \ | 21 | softirq_name(TASKLET), \ |
| 22 | softirq_name(SCHED), \ | 22 | softirq_name(SCHED), \ |
| 23 | softirq_name(HRTIMER)) | 23 | softirq_name(HRTIMER), \ |
| 24 | softirq_name(RCU)) | ||
| 24 | 25 | ||
| 25 | /** | 26 | /** |
| 26 | * irq_handler_entry - called immediately before the irq action handler | 27 | * irq_handler_entry - called immediately before the irq action handler |
diff --git a/include/trace/events/net.h b/include/trace/events/net.h index 5f247f5ffc56..f99645d05a8f 100644 --- a/include/trace/events/net.h +++ b/include/trace/events/net.h | |||
| @@ -12,22 +12,24 @@ | |||
| 12 | TRACE_EVENT(net_dev_xmit, | 12 | TRACE_EVENT(net_dev_xmit, |
| 13 | 13 | ||
| 14 | TP_PROTO(struct sk_buff *skb, | 14 | TP_PROTO(struct sk_buff *skb, |
| 15 | int rc), | 15 | int rc, |
| 16 | struct net_device *dev, | ||
| 17 | unsigned int skb_len), | ||
| 16 | 18 | ||
| 17 | TP_ARGS(skb, rc), | 19 | TP_ARGS(skb, rc, dev, skb_len), |
| 18 | 20 | ||
| 19 | TP_STRUCT__entry( | 21 | TP_STRUCT__entry( |
| 20 | __field( void *, skbaddr ) | 22 | __field( void *, skbaddr ) |
| 21 | __field( unsigned int, len ) | 23 | __field( unsigned int, len ) |
| 22 | __field( int, rc ) | 24 | __field( int, rc ) |
| 23 | __string( name, skb->dev->name ) | 25 | __string( name, dev->name ) |
| 24 | ), | 26 | ), |
| 25 | 27 | ||
| 26 | TP_fast_assign( | 28 | TP_fast_assign( |
| 27 | __entry->skbaddr = skb; | 29 | __entry->skbaddr = skb; |
| 28 | __entry->len = skb->len; | 30 | __entry->len = skb_len; |
| 29 | __entry->rc = rc; | 31 | __entry->rc = rc; |
| 30 | __assign_str(name, skb->dev->name); | 32 | __assign_str(name, dev->name); |
| 31 | ), | 33 | ), |
| 32 | 34 | ||
| 33 | TP_printk("dev=%s skbaddr=%p len=%u rc=%d", | 35 | TP_printk("dev=%s skbaddr=%p len=%u rc=%d", |
diff --git a/include/trace/events/vmscan.h b/include/trace/events/vmscan.h index ea422aaa23e1..b2c33bd955fa 100644 --- a/include/trace/events/vmscan.h +++ b/include/trace/events/vmscan.h | |||
| @@ -6,6 +6,8 @@ | |||
| 6 | 6 | ||
| 7 | #include <linux/types.h> | 7 | #include <linux/types.h> |
| 8 | #include <linux/tracepoint.h> | 8 | #include <linux/tracepoint.h> |
| 9 | #include <linux/mm.h> | ||
| 10 | #include <linux/memcontrol.h> | ||
| 9 | #include "gfpflags.h" | 11 | #include "gfpflags.h" |
| 10 | 12 | ||
| 11 | #define RECLAIM_WB_ANON 0x0001u | 13 | #define RECLAIM_WB_ANON 0x0001u |
| @@ -310,6 +312,87 @@ TRACE_EVENT(mm_vmscan_lru_shrink_inactive, | |||
| 310 | show_reclaim_flags(__entry->reclaim_flags)) | 312 | show_reclaim_flags(__entry->reclaim_flags)) |
| 311 | ); | 313 | ); |
| 312 | 314 | ||
| 315 | TRACE_EVENT(replace_swap_token, | ||
| 316 | TP_PROTO(struct mm_struct *old_mm, | ||
| 317 | struct mm_struct *new_mm), | ||
| 318 | |||
| 319 | TP_ARGS(old_mm, new_mm), | ||
| 320 | |||
| 321 | TP_STRUCT__entry( | ||
| 322 | __field(struct mm_struct*, old_mm) | ||
| 323 | __field(unsigned int, old_prio) | ||
| 324 | __field(struct mm_struct*, new_mm) | ||
| 325 | __field(unsigned int, new_prio) | ||
| 326 | ), | ||
| 327 | |||
| 328 | TP_fast_assign( | ||
| 329 | __entry->old_mm = old_mm; | ||
| 330 | __entry->old_prio = old_mm ? old_mm->token_priority : 0; | ||
| 331 | __entry->new_mm = new_mm; | ||
| 332 | __entry->new_prio = new_mm->token_priority; | ||
| 333 | ), | ||
| 334 | |||
| 335 | TP_printk("old_token_mm=%p old_prio=%u new_token_mm=%p new_prio=%u", | ||
| 336 | __entry->old_mm, __entry->old_prio, | ||
| 337 | __entry->new_mm, __entry->new_prio) | ||
| 338 | ); | ||
| 339 | |||
| 340 | DECLARE_EVENT_CLASS(put_swap_token_template, | ||
| 341 | TP_PROTO(struct mm_struct *swap_token_mm), | ||
| 342 | |||
| 343 | TP_ARGS(swap_token_mm), | ||
| 344 | |||
| 345 | TP_STRUCT__entry( | ||
| 346 | __field(struct mm_struct*, swap_token_mm) | ||
| 347 | ), | ||
| 348 | |||
| 349 | TP_fast_assign( | ||
| 350 | __entry->swap_token_mm = swap_token_mm; | ||
| 351 | ), | ||
| 352 | |||
| 353 | TP_printk("token_mm=%p", __entry->swap_token_mm) | ||
| 354 | ); | ||
| 355 | |||
| 356 | DEFINE_EVENT(put_swap_token_template, put_swap_token, | ||
| 357 | TP_PROTO(struct mm_struct *swap_token_mm), | ||
| 358 | TP_ARGS(swap_token_mm) | ||
| 359 | ); | ||
| 360 | |||
| 361 | DEFINE_EVENT_CONDITION(put_swap_token_template, disable_swap_token, | ||
| 362 | TP_PROTO(struct mm_struct *swap_token_mm), | ||
| 363 | TP_ARGS(swap_token_mm), | ||
| 364 | TP_CONDITION(swap_token_mm != NULL) | ||
| 365 | ); | ||
| 366 | |||
| 367 | TRACE_EVENT_CONDITION(update_swap_token_priority, | ||
| 368 | TP_PROTO(struct mm_struct *mm, | ||
| 369 | unsigned int old_prio, | ||
| 370 | struct mm_struct *swap_token_mm), | ||
| 371 | |||
| 372 | TP_ARGS(mm, old_prio, swap_token_mm), | ||
| 373 | |||
| 374 | TP_CONDITION(mm->token_priority != old_prio), | ||
| 375 | |||
| 376 | TP_STRUCT__entry( | ||
| 377 | __field(struct mm_struct*, mm) | ||
| 378 | __field(unsigned int, old_prio) | ||
| 379 | __field(unsigned int, new_prio) | ||
| 380 | __field(struct mm_struct*, swap_token_mm) | ||
| 381 | __field(unsigned int, swap_token_prio) | ||
| 382 | ), | ||
| 383 | |||
| 384 | TP_fast_assign( | ||
| 385 | __entry->mm = mm; | ||
| 386 | __entry->old_prio = old_prio; | ||
| 387 | __entry->new_prio = mm->token_priority; | ||
| 388 | __entry->swap_token_mm = swap_token_mm; | ||
| 389 | __entry->swap_token_prio = swap_token_mm ? swap_token_mm->token_priority : 0; | ||
| 390 | ), | ||
| 391 | |||
| 392 | TP_printk("mm=%p old_prio=%u new_prio=%u swap_token_mm=%p token_prio=%u", | ||
| 393 | __entry->mm, __entry->old_prio, __entry->new_prio, | ||
| 394 | __entry->swap_token_mm, __entry->swap_token_prio) | ||
| 395 | ); | ||
| 313 | 396 | ||
| 314 | #endif /* _TRACE_VMSCAN_H */ | 397 | #endif /* _TRACE_VMSCAN_H */ |
| 315 | 398 | ||
