diff options
| author | Olof Johansson <olof@lixom.net> | 2012-09-16 21:50:30 -0400 | 
|---|---|---|
| committer | Olof Johansson <olof@lixom.net> | 2012-09-16 21:50:30 -0400 | 
| commit | d192f93cfca6a0aedbf10fa548d8bc17b86275d6 (patch) | |
| tree | 357a4106ec49747bd78550a79d68f7b6d1f642a3 /include | |
| parent | adcb079f28ec08165897e2450a4a60b219274008 (diff) | |
| parent | d5703bd35a4c76b0717ea51e2e8aabce341828a1 (diff) | |
Merge tag 'tegra-for-3.7-maintainers' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into next/maintainers
* tag 'tegra-for-3.7-maintainers' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra:
  MAINTAINERS: tegra: remove Olof/Colin, add device tree files
  MAINTAINERS: add defconfig file to TEGRA section
  + sync with 3.6-rc4
Diffstat (limited to 'include')
64 files changed, 257 insertions, 125 deletions
diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h index 2c744c7a5b3d..26a92fc28a59 100644 --- a/include/acpi/acpixf.h +++ b/include/acpi/acpixf.h  | |||
| @@ -491,11 +491,11 @@ acpi_get_sleep_type_data(u8 sleep_state, u8 * slp_typ_a, u8 * slp_typ_b); | |||
| 491 | 491 | ||
| 492 | acpi_status acpi_enter_sleep_state_prep(u8 sleep_state); | 492 | acpi_status acpi_enter_sleep_state_prep(u8 sleep_state); | 
| 493 | 493 | ||
| 494 | acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state, u8 flags); | 494 | acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state); | 
| 495 | 495 | ||
| 496 | ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void)) | 496 | ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void)) | 
| 497 | 497 | ||
| 498 | acpi_status acpi_leave_sleep_state_prep(u8 sleep_state, u8 flags); | 498 | acpi_status acpi_leave_sleep_state_prep(u8 sleep_state); | 
| 499 | 499 | ||
| 500 | acpi_status acpi_leave_sleep_state(u8 sleep_state); | 500 | acpi_status acpi_leave_sleep_state(u8 sleep_state); | 
| 501 | 501 | ||
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h index 3af87de6a68c..3d00bd5bd7e3 100644 --- a/include/acpi/actypes.h +++ b/include/acpi/actypes.h  | |||
| @@ -803,7 +803,7 @@ typedef u8 acpi_adr_space_type; | |||
| 803 | 803 | ||
| 804 | /* Sleep function dispatch */ | 804 | /* Sleep function dispatch */ | 
| 805 | 805 | ||
| 806 | typedef acpi_status(*ACPI_SLEEP_FUNCTION) (u8 sleep_state, u8 flags); | 806 | typedef acpi_status(*ACPI_SLEEP_FUNCTION) (u8 sleep_state); | 
| 807 | 807 | ||
| 808 | struct acpi_sleep_functions { | 808 | struct acpi_sleep_functions { | 
| 809 | ACPI_SLEEP_FUNCTION legacy_function; | 809 | ACPI_SLEEP_FUNCTION legacy_function; | 
diff --git a/include/asm-generic/mutex-xchg.h b/include/asm-generic/mutex-xchg.h index 580a6d35c700..c04e0db8a2d6 100644 --- a/include/asm-generic/mutex-xchg.h +++ b/include/asm-generic/mutex-xchg.h  | |||
| @@ -26,7 +26,13 @@ static inline void | |||
| 26 | __mutex_fastpath_lock(atomic_t *count, void (*fail_fn)(atomic_t *)) | 26 | __mutex_fastpath_lock(atomic_t *count, void (*fail_fn)(atomic_t *)) | 
| 27 | { | 27 | { | 
| 28 | if (unlikely(atomic_xchg(count, 0) != 1)) | 28 | if (unlikely(atomic_xchg(count, 0) != 1)) | 
| 29 | fail_fn(count); | 29 | /* | 
| 30 | * We failed to acquire the lock, so mark it contended | ||
| 31 | * to ensure that any waiting tasks are woken up by the | ||
| 32 | * unlock slow path. | ||
| 33 | */ | ||
| 34 | if (likely(atomic_xchg(count, -1) != 1)) | ||
| 35 | fail_fn(count); | ||
| 30 | } | 36 | } | 
| 31 | 37 | ||
| 32 | /** | 38 | /** | 
| @@ -43,7 +49,8 @@ static inline int | |||
| 43 | __mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *)) | 49 | __mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *)) | 
| 44 | { | 50 | { | 
| 45 | if (unlikely(atomic_xchg(count, 0) != 1)) | 51 | if (unlikely(atomic_xchg(count, 0) != 1)) | 
| 46 | return fail_fn(count); | 52 | if (likely(atomic_xchg(count, -1) != 1)) | 
| 53 | return fail_fn(count); | ||
| 47 | return 0; | 54 | return 0; | 
| 48 | } | 55 | } | 
| 49 | 56 | ||
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index a1a0386e0160..bfacf0d5a225 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h  | |||
| @@ -118,7 +118,8 @@ enum drm_mode_status { | |||
| 118 | .hdisplay = (hd), .hsync_start = (hss), .hsync_end = (hse), \ | 118 | .hdisplay = (hd), .hsync_start = (hss), .hsync_end = (hse), \ | 
| 119 | .htotal = (ht), .hskew = (hsk), .vdisplay = (vd), \ | 119 | .htotal = (ht), .hskew = (hsk), .vdisplay = (vd), \ | 
| 120 | .vsync_start = (vss), .vsync_end = (vse), .vtotal = (vt), \ | 120 | .vsync_start = (vss), .vsync_end = (vse), .vtotal = (vt), \ | 
| 121 | .vscan = (vs), .flags = (f), .vrefresh = 0 | 121 | .vscan = (vs), .flags = (f), .vrefresh = 0, \ | 
| 122 | .base.type = DRM_MODE_OBJECT_MODE | ||
| 122 | 123 | ||
| 123 | #define CRTC_INTERLACE_HALVE_V 0x1 /* halve V values for interlacing */ | 124 | #define CRTC_INTERLACE_HALVE_V 0x1 /* halve V values for interlacing */ | 
| 124 | 125 | ||
| @@ -166,8 +167,6 @@ struct drm_display_mode { | |||
| 166 | int crtc_vsync_start; | 167 | int crtc_vsync_start; | 
| 167 | int crtc_vsync_end; | 168 | int crtc_vsync_end; | 
| 168 | int crtc_vtotal; | 169 | int crtc_vtotal; | 
| 169 | int crtc_hadjusted; | ||
| 170 | int crtc_vadjusted; | ||
| 171 | 170 | ||
| 172 | /* Driver private mode info */ | 171 | /* Driver private mode info */ | 
| 173 | int private_size; | 172 | int private_size; | 
diff --git a/include/drm/drm_mode.h b/include/drm/drm_mode.h index 5581980b14f6..3d6301b6ec16 100644 --- a/include/drm/drm_mode.h +++ b/include/drm/drm_mode.h  | |||
| @@ -359,8 +359,9 @@ struct drm_mode_mode_cmd { | |||
| 359 | struct drm_mode_modeinfo mode; | 359 | struct drm_mode_modeinfo mode; | 
| 360 | }; | 360 | }; | 
| 361 | 361 | ||
| 362 | #define DRM_MODE_CURSOR_BO (1<<0) | 362 | #define DRM_MODE_CURSOR_BO 0x01 | 
| 363 | #define DRM_MODE_CURSOR_MOVE (1<<1) | 363 | #define DRM_MODE_CURSOR_MOVE 0x02 | 
| 364 | #define DRM_MODE_CURSOR_FLAGS 0x03 | ||
| 364 | 365 | ||
| 365 | /* | 366 | /* | 
| 366 | * depending on the value in flags different members are used. | 367 | * depending on the value in flags different members are used. | 
diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h index 7ff5c99b1638..c78bb997e2c6 100644 --- a/include/drm/drm_pciids.h +++ b/include/drm/drm_pciids.h  | |||
| @@ -213,9 +213,12 @@ | |||
| 213 | {0x1002, 0x6800, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 213 | {0x1002, 0x6800, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 
| 214 | {0x1002, 0x6801, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 214 | {0x1002, 0x6801, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 
| 215 | {0x1002, 0x6802, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 215 | {0x1002, 0x6802, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 
| 216 | {0x1002, 0x6806, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \ | ||
| 216 | {0x1002, 0x6808, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \ | 217 | {0x1002, 0x6808, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \ | 
| 217 | {0x1002, 0x6809, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \ | 218 | {0x1002, 0x6809, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \ | 
| 218 | {0x1002, 0x6810, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \ | 219 | {0x1002, 0x6810, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \ | 
| 220 | {0x1002, 0x6816, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \ | ||
| 221 | {0x1002, 0x6817, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \ | ||
| 219 | {0x1002, 0x6818, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \ | 222 | {0x1002, 0x6818, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \ | 
| 220 | {0x1002, 0x6819, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \ | 223 | {0x1002, 0x6819, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \ | 
| 221 | {0x1002, 0x6820, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 224 | {0x1002, 0x6820, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 
diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h index 58056865b8e9..dc3a8cd7db8a 100644 --- a/include/drm/radeon_drm.h +++ b/include/drm/radeon_drm.h  | |||
| @@ -964,6 +964,8 @@ struct drm_radeon_cs { | |||
| 964 | #define RADEON_INFO_IB_VM_MAX_SIZE 0x0f | 964 | #define RADEON_INFO_IB_VM_MAX_SIZE 0x0f | 
| 965 | /* max pipes - needed for compute shaders */ | 965 | /* max pipes - needed for compute shaders */ | 
| 966 | #define RADEON_INFO_MAX_PIPES 0x10 | 966 | #define RADEON_INFO_MAX_PIPES 0x10 | 
| 967 | /* timestamp for GL_ARB_timer_query (OpenGL), returns the current GPU clock */ | ||
| 968 | #define RADEON_INFO_TIMESTAMP 0x11 | ||
| 967 | 969 | ||
| 968 | struct drm_radeon_info { | 970 | struct drm_radeon_info { | 
| 969 | uint32_t request; | 971 | uint32_t request; | 
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index d9a754474878..fa217607c582 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild  | |||
| @@ -391,6 +391,7 @@ header-y += v4l2-dv-timings.h | |||
| 391 | header-y += v4l2-mediabus.h | 391 | header-y += v4l2-mediabus.h | 
| 392 | header-y += v4l2-subdev.h | 392 | header-y += v4l2-subdev.h | 
| 393 | header-y += veth.h | 393 | header-y += veth.h | 
| 394 | header-y += vfio.h | ||
| 394 | header-y += vhost.h | 395 | header-y += vhost.h | 
| 395 | header-y += videodev2.h | 396 | header-y += videodev2.h | 
| 396 | header-y += virtio_9p.h | 397 | header-y += virtio_9p.h | 
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 3ad510b25283..4f2a76224509 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h  | |||
| @@ -96,7 +96,7 @@ void acpi_table_print_madt_entry (struct acpi_subtable_header *madt); | |||
| 96 | void acpi_numa_slit_init (struct acpi_table_slit *slit); | 96 | void acpi_numa_slit_init (struct acpi_table_slit *slit); | 
| 97 | void acpi_numa_processor_affinity_init (struct acpi_srat_cpu_affinity *pa); | 97 | void acpi_numa_processor_affinity_init (struct acpi_srat_cpu_affinity *pa); | 
| 98 | void acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa); | 98 | void acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa); | 
| 99 | void acpi_numa_memory_affinity_init (struct acpi_srat_mem_affinity *ma); | 99 | int acpi_numa_memory_affinity_init (struct acpi_srat_mem_affinity *ma); | 
| 100 | void acpi_numa_arch_fixup(void); | 100 | void acpi_numa_arch_fixup(void); | 
| 101 | 101 | ||
| 102 | #ifdef CONFIG_ACPI_HOTPLUG_CPU | 102 | #ifdef CONFIG_ACPI_HOTPLUG_CPU | 
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index c97c6b9cd38e..2a9a9abc9126 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h  | |||
| @@ -124,7 +124,6 @@ void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages, | |||
| 124 | void bdi_start_background_writeback(struct backing_dev_info *bdi); | 124 | void bdi_start_background_writeback(struct backing_dev_info *bdi); | 
| 125 | int bdi_writeback_thread(void *data); | 125 | int bdi_writeback_thread(void *data); | 
| 126 | int bdi_has_dirty_io(struct backing_dev_info *bdi); | 126 | int bdi_has_dirty_io(struct backing_dev_info *bdi); | 
| 127 | void bdi_arm_supers_timer(void); | ||
| 128 | void bdi_wakeup_thread_delayed(struct backing_dev_info *bdi); | 127 | void bdi_wakeup_thread_delayed(struct backing_dev_info *bdi); | 
| 129 | void bdi_lock_two(struct bdi_writeback *wb1, struct bdi_writeback *wb2); | 128 | void bdi_lock_two(struct bdi_writeback *wb1, struct bdi_writeback *wb2); | 
| 130 | 129 | ||
diff --git a/include/linux/bcma/bcma_driver_chipcommon.h b/include/linux/bcma/bcma_driver_chipcommon.h index 3c80885fa829..d323a4b4143c 100644 --- a/include/linux/bcma/bcma_driver_chipcommon.h +++ b/include/linux/bcma/bcma_driver_chipcommon.h  | |||
| @@ -89,6 +89,12 @@ | |||
| 89 | #define BCMA_CC_CHIPST_4313_OTP_PRESENT 2 | 89 | #define BCMA_CC_CHIPST_4313_OTP_PRESENT 2 | 
| 90 | #define BCMA_CC_CHIPST_4331_SPROM_PRESENT 2 | 90 | #define BCMA_CC_CHIPST_4331_SPROM_PRESENT 2 | 
| 91 | #define BCMA_CC_CHIPST_4331_OTP_PRESENT 4 | 91 | #define BCMA_CC_CHIPST_4331_OTP_PRESENT 4 | 
| 92 | #define BCMA_CC_CHIPST_43228_ILP_DIV_EN 0x00000001 | ||
| 93 | #define BCMA_CC_CHIPST_43228_OTP_PRESENT 0x00000002 | ||
| 94 | #define BCMA_CC_CHIPST_43228_SERDES_REFCLK_PADSEL 0x00000004 | ||
| 95 | #define BCMA_CC_CHIPST_43228_SDIO_MODE 0x00000008 | ||
| 96 | #define BCMA_CC_CHIPST_43228_SDIO_OTP_PRESENT 0x00000010 | ||
| 97 | #define BCMA_CC_CHIPST_43228_SDIO_RESET 0x00000020 | ||
| 92 | #define BCMA_CC_CHIPST_4706_PKG_OPTION BIT(0) /* 0: full-featured package 1: low-cost package */ | 98 | #define BCMA_CC_CHIPST_4706_PKG_OPTION BIT(0) /* 0: full-featured package 1: low-cost package */ | 
| 93 | #define BCMA_CC_CHIPST_4706_SFLASH_PRESENT BIT(1) /* 0: parallel, 1: serial flash is present */ | 99 | #define BCMA_CC_CHIPST_4706_SFLASH_PRESENT BIT(1) /* 0: parallel, 1: serial flash is present */ | 
| 94 | #define BCMA_CC_CHIPST_4706_SFLASH_TYPE BIT(2) /* 0: 8b-p/ST-s flash, 1: 16b-p/Atmal-s flash */ | 100 | #define BCMA_CC_CHIPST_4706_SFLASH_TYPE BIT(2) /* 0: 8b-p/ST-s flash, 1: 16b-p/Atmal-s flash */ | 
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 4e72a9d48232..4a2ab7c85393 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h  | |||
| @@ -601,7 +601,7 @@ static inline void blk_clear_rl_full(struct request_list *rl, bool sync) | |||
| 601 | * it already be started by driver. | 601 | * it already be started by driver. | 
| 602 | */ | 602 | */ | 
| 603 | #define RQ_NOMERGE_FLAGS \ | 603 | #define RQ_NOMERGE_FLAGS \ | 
| 604 | (REQ_NOMERGE | REQ_STARTED | REQ_SOFTBARRIER | REQ_FLUSH | REQ_FUA) | 604 | (REQ_NOMERGE | REQ_STARTED | REQ_SOFTBARRIER | REQ_FLUSH | REQ_FUA | REQ_DISCARD) | 
| 605 | #define rq_mergeable(rq) \ | 605 | #define rq_mergeable(rq) \ | 
| 606 | (!((rq)->cmd_flags & RQ_NOMERGE_FLAGS) && \ | 606 | (!((rq)->cmd_flags & RQ_NOMERGE_FLAGS) && \ | 
| 607 | (((rq)->cmd_flags & REQ_DISCARD) || \ | 607 | (((rq)->cmd_flags & REQ_DISCARD) || \ | 
| @@ -894,6 +894,8 @@ extern void blk_queue_flush_queueable(struct request_queue *q, bool queueable); | |||
| 894 | extern struct backing_dev_info *blk_get_backing_dev_info(struct block_device *bdev); | 894 | extern struct backing_dev_info *blk_get_backing_dev_info(struct block_device *bdev); | 
| 895 | 895 | ||
| 896 | extern int blk_rq_map_sg(struct request_queue *, struct request *, struct scatterlist *); | 896 | extern int blk_rq_map_sg(struct request_queue *, struct request *, struct scatterlist *); | 
| 897 | extern int blk_bio_map_sg(struct request_queue *q, struct bio *bio, | ||
| 898 | struct scatterlist *sglist); | ||
| 897 | extern void blk_dump_rq_flags(struct request *, char *); | 899 | extern void blk_dump_rq_flags(struct request *, char *); | 
| 898 | extern long nr_blockdev_pages(void); | 900 | extern long nr_blockdev_pages(void); | 
| 899 | 901 | ||
| @@ -1139,6 +1141,16 @@ static inline int queue_limit_discard_alignment(struct queue_limits *lim, sector | |||
| 1139 | & (lim->discard_granularity - 1); | 1141 | & (lim->discard_granularity - 1); | 
| 1140 | } | 1142 | } | 
| 1141 | 1143 | ||
| 1144 | static inline int bdev_discard_alignment(struct block_device *bdev) | ||
| 1145 | { | ||
| 1146 | struct request_queue *q = bdev_get_queue(bdev); | ||
| 1147 | |||
| 1148 | if (bdev != bdev->bd_contains) | ||
| 1149 | return bdev->bd_part->discard_alignment; | ||
| 1150 | |||
| 1151 | return q->limits.discard_alignment; | ||
| 1152 | } | ||
| 1153 | |||
| 1142 | static inline unsigned int queue_discard_zeroes_data(struct request_queue *q) | 1154 | static inline unsigned int queue_discard_zeroes_data(struct request_queue *q) | 
| 1143 | { | 1155 | { | 
| 1144 | if (q->limits.max_discard_sectors && q->limits.discard_zeroes_data == 1) | 1156 | if (q->limits.max_discard_sectors && q->limits.discard_zeroes_data == 1) | 
diff --git a/include/linux/can.h b/include/linux/can.h index 018055efc034..e52958d7c2d1 100644 --- a/include/linux/can.h +++ b/include/linux/can.h  | |||
| @@ -74,20 +74,21 @@ struct can_frame { | |||
| 74 | /* | 74 | /* | 
| 75 | * defined bits for canfd_frame.flags | 75 | * defined bits for canfd_frame.flags | 
| 76 | * | 76 | * | 
| 77 | * As the default for CAN FD should be to support the high data rate in the | 77 | * The use of struct canfd_frame implies the Extended Data Length (EDL) bit to | 
| 78 | * payload section of the frame (HDR) and to support up to 64 byte in the | 78 | * be set in the CAN frame bitstream on the wire. The EDL bit switch turns | 
| 79 | * data section (EDL) the bits are only set in the non-default case. | 79 | * the CAN controllers bitstream processor into the CAN FD mode which creates | 
| 80 | * Btw. as long as there's no real implementation for CAN FD network driver | 80 | * two new options within the CAN FD frame specification: | 
| 81 | * these bits are only preliminary. | ||
| 82 | * | 81 | * | 
| 83 | * RX: NOHDR/NOEDL - info about received CAN FD frame | 82 | * Bit Rate Switch - to indicate a second bitrate is/was used for the payload | 
| 84 | * ESI - bit from originating CAN controller | 83 | * Error State Indicator - represents the error state of the transmitting node | 
| 85 | * TX: NOHDR/NOEDL - control per-frame settings if supported by CAN controller | 84 | * | 
| 86 | * ESI - bit is set by local CAN controller | 85 | * As the CANFD_ESI bit is internally generated by the transmitting CAN | 
| 86 | * controller only the CANFD_BRS bit is relevant for real CAN controllers when | ||
| 87 | * building a CAN FD frame for transmission. Setting the CANFD_ESI bit can make | ||
| 88 | * sense for virtual CAN interfaces to test applications with echoed frames. | ||
| 87 | */ | 89 | */ | 
| 88 | #define CANFD_NOHDR 0x01 /* frame without high data rate */ | 90 | #define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */ | 
| 89 | #define CANFD_NOEDL 0x02 /* frame without extended data length */ | 91 | #define CANFD_ESI 0x02 /* error state indicator of the transmitting node */ | 
| 90 | #define CANFD_ESI 0x04 /* error state indicator */ | ||
| 91 | 92 | ||
| 92 | /** | 93 | /** | 
| 93 | * struct canfd_frame - CAN flexible data rate frame structure | 94 | * struct canfd_frame - CAN flexible data rate frame structure | 
diff --git a/include/linux/compaction.h b/include/linux/compaction.h index 133ddcf83397..ef658147e4e8 100644 --- a/include/linux/compaction.h +++ b/include/linux/compaction.h  | |||
| @@ -22,7 +22,7 @@ extern int sysctl_extfrag_handler(struct ctl_table *table, int write, | |||
| 22 | extern int fragmentation_index(struct zone *zone, unsigned int order); | 22 | extern int fragmentation_index(struct zone *zone, unsigned int order); | 
| 23 | extern unsigned long try_to_compact_pages(struct zonelist *zonelist, | 23 | extern unsigned long try_to_compact_pages(struct zonelist *zonelist, | 
| 24 | int order, gfp_t gfp_mask, nodemask_t *mask, | 24 | int order, gfp_t gfp_mask, nodemask_t *mask, | 
| 25 | bool sync); | 25 | bool sync, bool *contended); | 
| 26 | extern int compact_pgdat(pg_data_t *pgdat, int order); | 26 | extern int compact_pgdat(pg_data_t *pgdat, int order); | 
| 27 | extern unsigned long compaction_suitable(struct zone *zone, int order); | 27 | extern unsigned long compaction_suitable(struct zone *zone, int order); | 
| 28 | 28 | ||
| @@ -64,7 +64,7 @@ static inline bool compaction_deferred(struct zone *zone, int order) | |||
| 64 | #else | 64 | #else | 
| 65 | static inline unsigned long try_to_compact_pages(struct zonelist *zonelist, | 65 | static inline unsigned long try_to_compact_pages(struct zonelist *zonelist, | 
| 66 | int order, gfp_t gfp_mask, nodemask_t *nodemask, | 66 | int order, gfp_t gfp_mask, nodemask_t *nodemask, | 
| 67 | bool sync) | 67 | bool sync, bool *contended) | 
| 68 | { | 68 | { | 
| 69 | return COMPACT_CONTINUE; | 69 | return COMPACT_CONTINUE; | 
| 70 | } | 70 | } | 
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index 040b13b5c14a..279b1eaa8b73 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h  | |||
| @@ -194,6 +194,10 @@ static inline int cpuidle_play_dead(void) {return -ENODEV; } | |||
| 194 | 194 | ||
| 195 | #ifdef CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED | 195 | #ifdef CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED | 
| 196 | void cpuidle_coupled_parallel_barrier(struct cpuidle_device *dev, atomic_t *a); | 196 | void cpuidle_coupled_parallel_barrier(struct cpuidle_device *dev, atomic_t *a); | 
| 197 | #else | ||
| 198 | static inline void cpuidle_coupled_parallel_barrier(struct cpuidle_device *dev, atomic_t *a) | ||
| 199 | { | ||
| 200 | } | ||
| 197 | #endif | 201 | #endif | 
| 198 | 202 | ||
| 199 | /****************************** | 203 | /****************************** | 
diff --git a/include/linux/efi.h b/include/linux/efi.h index 103adc6d7e3a..ec45ccd8708a 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h  | |||
| @@ -503,6 +503,8 @@ extern u64 efi_mem_attribute (unsigned long phys_addr, unsigned long size); | |||
| 503 | extern int __init efi_uart_console_only (void); | 503 | extern int __init efi_uart_console_only (void); | 
| 504 | extern void efi_initialize_iomem_resources(struct resource *code_resource, | 504 | extern void efi_initialize_iomem_resources(struct resource *code_resource, | 
| 505 | struct resource *data_resource, struct resource *bss_resource); | 505 | struct resource *data_resource, struct resource *bss_resource); | 
| 506 | extern unsigned long efi_get_time(void); | ||
| 507 | extern int efi_set_rtc_mmss(unsigned long nowtime); | ||
| 506 | extern void efi_reserve_boot_services(void); | 508 | extern void efi_reserve_boot_services(void); | 
| 507 | extern struct efi_memory_map memmap; | 509 | extern struct efi_memory_map memmap; | 
| 508 | 510 | ||
diff --git a/include/linux/fs.h b/include/linux/fs.h index 38dba16c4176..aa110476a95b 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h  | |||
| @@ -1491,7 +1491,6 @@ struct sb_writers { | |||
| 1491 | struct super_block { | 1491 | struct super_block { | 
| 1492 | struct list_head s_list; /* Keep this first */ | 1492 | struct list_head s_list; /* Keep this first */ | 
| 1493 | dev_t s_dev; /* search index; _not_ kdev_t */ | 1493 | dev_t s_dev; /* search index; _not_ kdev_t */ | 
| 1494 | unsigned char s_dirt; | ||
| 1495 | unsigned char s_blocksize_bits; | 1494 | unsigned char s_blocksize_bits; | 
| 1496 | unsigned long s_blocksize; | 1495 | unsigned long s_blocksize; | 
| 1497 | loff_t s_maxbytes; /* Max file size */ | 1496 | loff_t s_maxbytes; /* Max file size */ | 
| @@ -1861,7 +1860,6 @@ struct super_operations { | |||
| 1861 | int (*drop_inode) (struct inode *); | 1860 | int (*drop_inode) (struct inode *); | 
| 1862 | void (*evict_inode) (struct inode *); | 1861 | void (*evict_inode) (struct inode *); | 
| 1863 | void (*put_super) (struct super_block *); | 1862 | void (*put_super) (struct super_block *); | 
| 1864 | void (*write_super) (struct super_block *); | ||
| 1865 | int (*sync_fs)(struct super_block *sb, int wait); | 1863 | int (*sync_fs)(struct super_block *sb, int wait); | 
| 1866 | int (*freeze_fs) (struct super_block *); | 1864 | int (*freeze_fs) (struct super_block *); | 
| 1867 | int (*unfreeze_fs) (struct super_block *); | 1865 | int (*unfreeze_fs) (struct super_block *); | 
| @@ -2397,7 +2395,6 @@ extern int vfs_fsync_range(struct file *file, loff_t start, loff_t end, | |||
| 2397 | int datasync); | 2395 | int datasync); | 
| 2398 | extern int vfs_fsync(struct file *file, int datasync); | 2396 | extern int vfs_fsync(struct file *file, int datasync); | 
| 2399 | extern int generic_write_sync(struct file *file, loff_t pos, loff_t count); | 2397 | extern int generic_write_sync(struct file *file, loff_t pos, loff_t count); | 
| 2400 | extern void sync_supers(void); | ||
| 2401 | extern void emergency_sync(void); | 2398 | extern void emergency_sync(void); | 
| 2402 | extern void emergency_remount(void); | 2399 | extern void emergency_remount(void); | 
| 2403 | #ifdef CONFIG_BLOCK | 2400 | #ifdef CONFIG_BLOCK | 
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h index af961d6f7ab1..642928cf57b4 100644 --- a/include/linux/ftrace_event.h +++ b/include/linux/ftrace_event.h  | |||
| @@ -306,9 +306,10 @@ extern void *perf_trace_buf_prepare(int size, unsigned short type, | |||
| 306 | 306 | ||
| 307 | static inline void | 307 | static inline void | 
| 308 | perf_trace_buf_submit(void *raw_data, int size, int rctx, u64 addr, | 308 | perf_trace_buf_submit(void *raw_data, int size, int rctx, u64 addr, | 
| 309 | u64 count, struct pt_regs *regs, void *head) | 309 | u64 count, struct pt_regs *regs, void *head, | 
| 310 | struct task_struct *task) | ||
| 310 | { | 311 | { | 
| 311 | perf_tp_event(addr, count, raw_data, size, regs, head, rctx); | 312 | perf_tp_event(addr, count, raw_data, size, regs, head, rctx, task); | 
| 312 | } | 313 | } | 
| 313 | #endif | 314 | #endif | 
| 314 | 315 | ||
diff --git a/include/linux/fuse.h b/include/linux/fuse.h index 9303348965fb..d8c713e148e3 100644 --- a/include/linux/fuse.h +++ b/include/linux/fuse.h  | |||
| @@ -57,6 +57,9 @@ | |||
| 57 | * | 57 | * | 
| 58 | * 7.19 | 58 | * 7.19 | 
| 59 | * - add FUSE_FALLOCATE | 59 | * - add FUSE_FALLOCATE | 
| 60 | * | ||
| 61 | * 7.20 | ||
| 62 | * - add FUSE_AUTO_INVAL_DATA | ||
| 60 | */ | 63 | */ | 
| 61 | 64 | ||
| 62 | #ifndef _LINUX_FUSE_H | 65 | #ifndef _LINUX_FUSE_H | 
| @@ -88,7 +91,7 @@ | |||
| 88 | #define FUSE_KERNEL_VERSION 7 | 91 | #define FUSE_KERNEL_VERSION 7 | 
| 89 | 92 | ||
| 90 | /** Minor version number of this interface */ | 93 | /** Minor version number of this interface */ | 
| 91 | #define FUSE_KERNEL_MINOR_VERSION 19 | 94 | #define FUSE_KERNEL_MINOR_VERSION 20 | 
| 92 | 95 | ||
| 93 | /** The node ID of the root inode */ | 96 | /** The node ID of the root inode */ | 
| 94 | #define FUSE_ROOT_ID 1 | 97 | #define FUSE_ROOT_ID 1 | 
| @@ -163,10 +166,19 @@ struct fuse_file_lock { | |||
| 163 | /** | 166 | /** | 
| 164 | * INIT request/reply flags | 167 | * INIT request/reply flags | 
| 165 | * | 168 | * | 
| 169 | * FUSE_ASYNC_READ: asynchronous read requests | ||
| 166 | * FUSE_POSIX_LOCKS: remote locking for POSIX file locks | 170 | * FUSE_POSIX_LOCKS: remote locking for POSIX file locks | 
| 171 | * FUSE_FILE_OPS: kernel sends file handle for fstat, etc... (not yet supported) | ||
| 172 | * FUSE_ATOMIC_O_TRUNC: handles the O_TRUNC open flag in the filesystem | ||
| 167 | * FUSE_EXPORT_SUPPORT: filesystem handles lookups of "." and ".." | 173 | * FUSE_EXPORT_SUPPORT: filesystem handles lookups of "." and ".." | 
| 174 | * FUSE_BIG_WRITES: filesystem can handle write size larger than 4kB | ||
| 168 | * FUSE_DONT_MASK: don't apply umask to file mode on create operations | 175 | * FUSE_DONT_MASK: don't apply umask to file mode on create operations | 
| 176 | * FUSE_SPLICE_WRITE: kernel supports splice write on the device | ||
| 177 | * FUSE_SPLICE_MOVE: kernel supports splice move on the device | ||
| 178 | * FUSE_SPLICE_READ: kernel supports splice read on the device | ||
| 169 | * FUSE_FLOCK_LOCKS: remote locking for BSD style file locks | 179 | * FUSE_FLOCK_LOCKS: remote locking for BSD style file locks | 
| 180 | * FUSE_HAS_IOCTL_DIR: kernel supports ioctl on directories | ||
| 181 | * FUSE_AUTO_INVAL_DATA: automatically invalidate cached pages | ||
| 170 | */ | 182 | */ | 
| 171 | #define FUSE_ASYNC_READ (1 << 0) | 183 | #define FUSE_ASYNC_READ (1 << 0) | 
| 172 | #define FUSE_POSIX_LOCKS (1 << 1) | 184 | #define FUSE_POSIX_LOCKS (1 << 1) | 
| @@ -175,7 +187,12 @@ struct fuse_file_lock { | |||
| 175 | #define FUSE_EXPORT_SUPPORT (1 << 4) | 187 | #define FUSE_EXPORT_SUPPORT (1 << 4) | 
| 176 | #define FUSE_BIG_WRITES (1 << 5) | 188 | #define FUSE_BIG_WRITES (1 << 5) | 
| 177 | #define FUSE_DONT_MASK (1 << 6) | 189 | #define FUSE_DONT_MASK (1 << 6) | 
| 190 | #define FUSE_SPLICE_WRITE (1 << 7) | ||
| 191 | #define FUSE_SPLICE_MOVE (1 << 8) | ||
| 192 | #define FUSE_SPLICE_READ (1 << 9) | ||
| 178 | #define FUSE_FLOCK_LOCKS (1 << 10) | 193 | #define FUSE_FLOCK_LOCKS (1 << 10) | 
| 194 | #define FUSE_HAS_IOCTL_DIR (1 << 11) | ||
| 195 | #define FUSE_AUTO_INVAL_DATA (1 << 12) | ||
| 179 | 196 | ||
| 180 | /** | 197 | /** | 
| 181 | * CUSE INIT request/reply flags | 198 | * CUSE INIT request/reply flags | 
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h index bb7f30971858..305f23cd7cff 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h  | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | * | 22 | * | 
| 23 | * - bits 16-25 are the hardirq count (max # of nested hardirqs: 1024) | 23 | * - bits 16-25 are the hardirq count (max # of nested hardirqs: 1024) | 
| 24 | * - bit 26 is the NMI_MASK | 24 | * - bit 26 is the NMI_MASK | 
| 25 | * - bit 28 is the PREEMPT_ACTIVE flag | 25 | * - bit 27 is the PREEMPT_ACTIVE flag | 
| 26 | * | 26 | * | 
| 27 | * PREEMPT_MASK: 0x000000ff | 27 | * PREEMPT_MASK: 0x000000ff | 
| 28 | * SOFTIRQ_MASK: 0x0000ff00 | 28 | * SOFTIRQ_MASK: 0x0000ff00 | 
diff --git a/include/linux/if_team.h b/include/linux/if_team.h index 6960fc1841a7..aa2e167e1ef4 100644 --- a/include/linux/if_team.h +++ b/include/linux/if_team.h  | |||
| @@ -96,21 +96,6 @@ static inline void team_netpoll_send_skb(struct team_port *port, | |||
| 96 | } | 96 | } | 
| 97 | #endif | 97 | #endif | 
| 98 | 98 | ||
| 99 | static inline int team_dev_queue_xmit(struct team *team, struct team_port *port, | ||
| 100 | struct sk_buff *skb) | ||
| 101 | { | ||
| 102 | BUILD_BUG_ON(sizeof(skb->queue_mapping) != | ||
| 103 | sizeof(qdisc_skb_cb(skb)->slave_dev_queue_mapping)); | ||
| 104 | skb_set_queue_mapping(skb, qdisc_skb_cb(skb)->slave_dev_queue_mapping); | ||
| 105 | |||
| 106 | skb->dev = port->dev; | ||
| 107 | if (unlikely(netpoll_tx_running(port->dev))) { | ||
| 108 | team_netpoll_send_skb(port, skb); | ||
| 109 | return 0; | ||
| 110 | } | ||
| 111 | return dev_queue_xmit(skb); | ||
| 112 | } | ||
| 113 | |||
| 114 | struct team_mode_ops { | 99 | struct team_mode_ops { | 
| 115 | int (*init)(struct team *team); | 100 | int (*init)(struct team *team); | 
| 116 | void (*exit)(struct team *team); | 101 | void (*exit)(struct team *team); | 
| @@ -200,6 +185,21 @@ struct team { | |||
| 200 | long mode_priv[TEAM_MODE_PRIV_LONGS]; | 185 | long mode_priv[TEAM_MODE_PRIV_LONGS]; | 
| 201 | }; | 186 | }; | 
| 202 | 187 | ||
| 188 | static inline int team_dev_queue_xmit(struct team *team, struct team_port *port, | ||
| 189 | struct sk_buff *skb) | ||
| 190 | { | ||
| 191 | BUILD_BUG_ON(sizeof(skb->queue_mapping) != | ||
| 192 | sizeof(qdisc_skb_cb(skb)->slave_dev_queue_mapping)); | ||
| 193 | skb_set_queue_mapping(skb, qdisc_skb_cb(skb)->slave_dev_queue_mapping); | ||
| 194 | |||
| 195 | skb->dev = port->dev; | ||
| 196 | if (unlikely(netpoll_tx_running(team->dev))) { | ||
| 197 | team_netpoll_send_skb(port, skb); | ||
| 198 | return 0; | ||
| 199 | } | ||
| 200 | return dev_queue_xmit(skb); | ||
| 201 | } | ||
| 202 | |||
| 203 | static inline struct hlist_head *team_port_index_hash(struct team *team, | 203 | static inline struct hlist_head *team_port_index_hash(struct team *team, | 
| 204 | int port_index) | 204 | int port_index) | 
| 205 | { | 205 | { | 
diff --git a/include/linux/iio/frequency/adf4350.h b/include/linux/iio/frequency/adf4350.h index b76b4a87065e..be91f344d5fc 100644 --- a/include/linux/iio/frequency/adf4350.h +++ b/include/linux/iio/frequency/adf4350.h  | |||
| @@ -87,6 +87,8 @@ | |||
| 87 | #define ADF4350_MAX_BANDSEL_CLK 125000 /* Hz */ | 87 | #define ADF4350_MAX_BANDSEL_CLK 125000 /* Hz */ | 
| 88 | #define ADF4350_MAX_FREQ_REFIN 250000000 /* Hz */ | 88 | #define ADF4350_MAX_FREQ_REFIN 250000000 /* Hz */ | 
| 89 | #define ADF4350_MAX_MODULUS 4095 | 89 | #define ADF4350_MAX_MODULUS 4095 | 
| 90 | #define ADF4350_MAX_R_CNT 1023 | ||
| 91 | |||
| 90 | 92 | ||
| 91 | /** | 93 | /** | 
| 92 | * struct adf4350_platform_data - platform specific information | 94 | * struct adf4350_platform_data - platform specific information | 
diff --git a/include/linux/input/eeti_ts.h b/include/linux/input/eeti_ts.h index f875b316249d..16625d799b6f 100644 --- a/include/linux/input/eeti_ts.h +++ b/include/linux/input/eeti_ts.h  | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | #define LINUX_INPUT_EETI_TS_H | 2 | #define LINUX_INPUT_EETI_TS_H | 
| 3 | 3 | ||
| 4 | struct eeti_ts_platform_data { | 4 | struct eeti_ts_platform_data { | 
| 5 | int irq_gpio; | ||
| 5 | unsigned int irq_active_high; | 6 | unsigned int irq_active_high; | 
| 6 | }; | 7 | }; | 
| 7 | 8 | ||
diff --git a/include/linux/iommu.h b/include/linux/iommu.h index 54d6d690073c..7e83370e6fd2 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h  | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | #define __LINUX_IOMMU_H | 20 | #define __LINUX_IOMMU_H | 
| 21 | 21 | ||
| 22 | #include <linux/errno.h> | 22 | #include <linux/errno.h> | 
| 23 | #include <linux/types.h> | ||
| 23 | 24 | ||
| 24 | #define IOMMU_READ (1) | 25 | #define IOMMU_READ (1) | 
| 25 | #define IOMMU_WRITE (2) | 26 | #define IOMMU_WRITE (2) | 
| @@ -30,6 +31,7 @@ struct iommu_group; | |||
| 30 | struct bus_type; | 31 | struct bus_type; | 
| 31 | struct device; | 32 | struct device; | 
| 32 | struct iommu_domain; | 33 | struct iommu_domain; | 
| 34 | struct notifier_block; | ||
| 33 | 35 | ||
| 34 | /* iommu fault flags */ | 36 | /* iommu fault flags */ | 
| 35 | #define IOMMU_FAULT_READ 0x0 | 37 | #define IOMMU_FAULT_READ 0x0 | 
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index 379e433e15e0..879db26ec401 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h  | |||
| @@ -369,6 +369,7 @@ struct ipv6_pinfo { | |||
| 369 | __u8 rcv_tclass; | 369 | __u8 rcv_tclass; | 
| 370 | 370 | ||
| 371 | __u32 dst_cookie; | 371 | __u32 dst_cookie; | 
| 372 | __u32 rx_dst_cookie; | ||
| 372 | 373 | ||
| 373 | struct ipv6_mc_socklist __rcu *ipv6_mc_list; | 374 | struct ipv6_mc_socklist __rcu *ipv6_mc_list; | 
| 374 | struct ipv6_ac_socklist *ipv6_ac_list; | 375 | struct ipv6_ac_socklist *ipv6_ac_list; | 
diff --git a/include/linux/irq.h b/include/linux/irq.h index 553fb66da130..216b0ba109d7 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h  | |||
| @@ -349,6 +349,7 @@ enum { | |||
| 349 | IRQCHIP_MASK_ON_SUSPEND = (1 << 2), | 349 | IRQCHIP_MASK_ON_SUSPEND = (1 << 2), | 
| 350 | IRQCHIP_ONOFFLINE_ENABLED = (1 << 3), | 350 | IRQCHIP_ONOFFLINE_ENABLED = (1 << 3), | 
| 351 | IRQCHIP_SKIP_SET_WAKE = (1 << 4), | 351 | IRQCHIP_SKIP_SET_WAKE = (1 << 4), | 
| 352 | IRQCHIP_ONESHOT_SAFE = (1 << 5), | ||
| 352 | }; | 353 | }; | 
| 353 | 354 | ||
| 354 | /* This include will go away once we isolated irq_desc usage to core code */ | 355 | /* This include will go away once we isolated irq_desc usage to core code */ | 
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h index f334c7fab967..3efc43f3f162 100644 --- a/include/linux/jbd2.h +++ b/include/linux/jbd2.h  | |||
| @@ -1125,6 +1125,7 @@ extern int jbd2_journal_destroy (journal_t *); | |||
| 1125 | extern int jbd2_journal_recover (journal_t *journal); | 1125 | extern int jbd2_journal_recover (journal_t *journal); | 
| 1126 | extern int jbd2_journal_wipe (journal_t *, int); | 1126 | extern int jbd2_journal_wipe (journal_t *, int); | 
| 1127 | extern int jbd2_journal_skip_recovery (journal_t *); | 1127 | extern int jbd2_journal_skip_recovery (journal_t *); | 
| 1128 | extern void jbd2_journal_update_sb_errno(journal_t *); | ||
| 1128 | extern void jbd2_journal_update_sb_log_tail (journal_t *, tid_t, | 1129 | extern void jbd2_journal_update_sb_log_tail (journal_t *, tid_t, | 
| 1129 | unsigned long, int); | 1130 | unsigned long, int); | 
| 1130 | extern void __jbd2_journal_abort_hard (journal_t *); | 1131 | extern void __jbd2_journal_abort_hard (journal_t *); | 
diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h index 265e2c3cbd1c..82680541576d 100644 --- a/include/linux/jiffies.h +++ b/include/linux/jiffies.h  | |||
| @@ -39,9 +39,6 @@ | |||
| 39 | # error Invalid value of HZ. | 39 | # error Invalid value of HZ. | 
| 40 | #endif | 40 | #endif | 
| 41 | 41 | ||
| 42 | /* LATCH is used in the interval timer and ftape setup. */ | ||
| 43 | #define LATCH ((CLOCK_TICK_RATE + HZ/2) / HZ) /* For divider */ | ||
| 44 | |||
| 45 | /* Suppose we want to divide two numbers NOM and DEN: NOM/DEN, then we can | 42 | /* Suppose we want to divide two numbers NOM and DEN: NOM/DEN, then we can | 
| 46 | * improve accuracy by shifting LSH bits, hence calculating: | 43 | * improve accuracy by shifting LSH bits, hence calculating: | 
| 47 | * (NOM << LSH) / DEN | 44 | * (NOM << LSH) / DEN | 
| @@ -54,18 +51,30 @@ | |||
| 54 | #define SH_DIV(NOM,DEN,LSH) ( (((NOM) / (DEN)) << (LSH)) \ | 51 | #define SH_DIV(NOM,DEN,LSH) ( (((NOM) / (DEN)) << (LSH)) \ | 
| 55 | + ((((NOM) % (DEN)) << (LSH)) + (DEN) / 2) / (DEN)) | 52 | + ((((NOM) % (DEN)) << (LSH)) + (DEN) / 2) / (DEN)) | 
| 56 | 53 | ||
| 57 | /* HZ is the requested value. ACTHZ is actual HZ ("<< 8" is for accuracy) */ | 54 | #ifdef CLOCK_TICK_RATE | 
| 58 | #define ACTHZ (SH_DIV (CLOCK_TICK_RATE, LATCH, 8)) | 55 | /* LATCH is used in the interval timer and ftape setup. */ | 
| 56 | # define LATCH ((CLOCK_TICK_RATE + HZ/2) / HZ) /* For divider */ | ||
| 57 | |||
| 58 | /* | ||
| 59 | * HZ is the requested value. However the CLOCK_TICK_RATE may not allow | ||
| 60 | * for exactly HZ. So SHIFTED_HZ is high res HZ ("<< 8" is for accuracy) | ||
| 61 | */ | ||
| 62 | # define SHIFTED_HZ (SH_DIV(CLOCK_TICK_RATE, LATCH, 8)) | ||
| 63 | #else | ||
| 64 | # define SHIFTED_HZ (HZ << 8) | ||
| 65 | #endif | ||
| 59 | 66 | ||
| 60 | /* TICK_NSEC is the time between ticks in nsec assuming real ACTHZ */ | 67 | /* TICK_NSEC is the time between ticks in nsec assuming SHIFTED_HZ */ | 
| 61 | #define TICK_NSEC (SH_DIV (1000000UL * 1000, ACTHZ, 8)) | 68 | #define TICK_NSEC (SH_DIV(1000000UL * 1000, SHIFTED_HZ, 8)) | 
| 62 | 69 | ||
| 63 | /* TICK_USEC is the time between ticks in usec assuming fake USER_HZ */ | 70 | /* TICK_USEC is the time between ticks in usec assuming fake USER_HZ */ | 
| 64 | #define TICK_USEC ((1000000UL + USER_HZ/2) / USER_HZ) | 71 | #define TICK_USEC ((1000000UL + USER_HZ/2) / USER_HZ) | 
| 65 | 72 | ||
| 66 | /* TICK_USEC_TO_NSEC is the time between ticks in nsec assuming real ACTHZ and */ | 73 | /* | 
| 67 | /* a value TUSEC for TICK_USEC (can be set bij adjtimex) */ | 74 | * TICK_USEC_TO_NSEC is the time between ticks in nsec assuming SHIFTED_HZ and | 
| 68 | #define TICK_USEC_TO_NSEC(TUSEC) (SH_DIV (TUSEC * USER_HZ * 1000, ACTHZ, 8)) | 75 | * a value TUSEC for TICK_USEC (can be set bij adjtimex) | 
| 76 | */ | ||
| 77 | #define TICK_USEC_TO_NSEC(TUSEC) (SH_DIV(TUSEC * USER_HZ * 1000, SHIFTED_HZ, 8)) | ||
| 69 | 78 | ||
| 70 | /* some arch's have a small-data section that can be accessed register-relative | 79 | /* some arch's have a small-data section that can be accessed register-relative | 
| 71 | * but that can only take up to, say, 4-byte variables. jiffies being part of | 80 | * but that can only take up to, say, 4-byte variables. jiffies being part of | 
diff --git a/include/linux/kdb.h b/include/linux/kdb.h index 064725854db8..42d9e863a313 100644 --- a/include/linux/kdb.h +++ b/include/linux/kdb.h  | |||
| @@ -75,8 +75,6 @@ extern const char *kdb_diemsg; | |||
| 75 | #define KDB_FLAG_CATASTROPHIC (1 << 1) /* A catastrophic event has occurred */ | 75 | #define KDB_FLAG_CATASTROPHIC (1 << 1) /* A catastrophic event has occurred */ | 
| 76 | #define KDB_FLAG_CMD_INTERRUPT (1 << 2) /* Previous command was interrupted */ | 76 | #define KDB_FLAG_CMD_INTERRUPT (1 << 2) /* Previous command was interrupted */ | 
| 77 | #define KDB_FLAG_NOIPI (1 << 3) /* Do not send IPIs */ | 77 | #define KDB_FLAG_NOIPI (1 << 3) /* Do not send IPIs */ | 
| 78 | #define KDB_FLAG_ONLY_DO_DUMP (1 << 4) /* Only do a dump, used when | ||
| 79 | * kdb is off */ | ||
| 80 | #define KDB_FLAG_NO_CONSOLE (1 << 5) /* No console is available, | 78 | #define KDB_FLAG_NO_CONSOLE (1 << 5) /* No console is available, | 
| 81 | * kdb is disabled */ | 79 | * kdb is disabled */ | 
| 82 | #define KDB_FLAG_NO_VT_CONSOLE (1 << 6) /* No VT console is available, do | 80 | #define KDB_FLAG_NO_VT_CONSOLE (1 << 6) /* No VT console is available, do | 
diff --git a/include/linux/kref.h b/include/linux/kref.h index 9c07dcebded7..65af6887872f 100644 --- a/include/linux/kref.h +++ b/include/linux/kref.h  | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | #include <linux/bug.h> | 18 | #include <linux/bug.h> | 
| 19 | #include <linux/atomic.h> | 19 | #include <linux/atomic.h> | 
| 20 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> | 
| 21 | #include <linux/mutex.h> | ||
| 21 | 22 | ||
| 22 | struct kref { | 23 | struct kref { | 
| 23 | atomic_t refcount; | 24 | atomic_t refcount; | 
| @@ -93,4 +94,21 @@ static inline int kref_put(struct kref *kref, void (*release)(struct kref *kref) | |||
| 93 | { | 94 | { | 
| 94 | return kref_sub(kref, 1, release); | 95 | return kref_sub(kref, 1, release); | 
| 95 | } | 96 | } | 
| 97 | |||
| 98 | static inline int kref_put_mutex(struct kref *kref, | ||
| 99 | void (*release)(struct kref *kref), | ||
| 100 | struct mutex *lock) | ||
| 101 | { | ||
| 102 | WARN_ON(release == NULL); | ||
| 103 | if (unlikely(!atomic_add_unless(&kref->refcount, -1, 1))) { | ||
| 104 | mutex_lock(lock); | ||
| 105 | if (unlikely(!atomic_dec_and_test(&kref->refcount))) { | ||
| 106 | mutex_unlock(lock); | ||
| 107 | return 0; | ||
| 108 | } | ||
| 109 | release(kref); | ||
| 110 | return 1; | ||
| 111 | } | ||
| 112 | return 0; | ||
| 113 | } | ||
| 96 | #endif /* _KREF_H_ */ | 114 | #endif /* _KREF_H_ */ | 
diff --git a/include/linux/ktime.h b/include/linux/ktime.h index 603bec2913b0..06177ba10a16 100644 --- a/include/linux/ktime.h +++ b/include/linux/ktime.h  | |||
| @@ -58,13 +58,6 @@ union ktime { | |||
| 58 | 58 | ||
| 59 | typedef union ktime ktime_t; /* Kill this */ | 59 | typedef union ktime ktime_t; /* Kill this */ | 
| 60 | 60 | ||
| 61 | #define KTIME_MAX ((s64)~((u64)1 << 63)) | ||
| 62 | #if (BITS_PER_LONG == 64) | ||
| 63 | # define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC) | ||
| 64 | #else | ||
| 65 | # define KTIME_SEC_MAX LONG_MAX | ||
| 66 | #endif | ||
| 67 | |||
| 68 | /* | 61 | /* | 
| 69 | * ktime_t definitions when using the 64-bit scalar representation: | 62 | * ktime_t definitions when using the 64-bit scalar representation: | 
| 70 | */ | 63 | */ | 
diff --git a/include/linux/mfd/ezx-pcap.h b/include/linux/mfd/ezx-pcap.h index 40c372165f3e..32a1b5cfeba1 100644 --- a/include/linux/mfd/ezx-pcap.h +++ b/include/linux/mfd/ezx-pcap.h  | |||
| @@ -16,6 +16,7 @@ struct pcap_subdev { | |||
| 16 | struct pcap_platform_data { | 16 | struct pcap_platform_data { | 
| 17 | unsigned int irq_base; | 17 | unsigned int irq_base; | 
| 18 | unsigned int config; | 18 | unsigned int config; | 
| 19 | int gpio; | ||
| 19 | void (*init) (void *); /* board specific init */ | 20 | void (*init) (void *); /* board specific init */ | 
| 20 | int num_subdevs; | 21 | int num_subdevs; | 
| 21 | struct pcap_subdev *subdevs; | 22 | struct pcap_subdev *subdevs; | 
diff --git a/include/linux/mv643xx_eth.h b/include/linux/mv643xx_eth.h index 51bf8ada6dc0..49258e0ed1c6 100644 --- a/include/linux/mv643xx_eth.h +++ b/include/linux/mv643xx_eth.h  | |||
| @@ -15,6 +15,8 @@ | |||
| 15 | #define MV643XX_ETH_SIZE_REG_4 0x2224 | 15 | #define MV643XX_ETH_SIZE_REG_4 0x2224 | 
| 16 | #define MV643XX_ETH_BASE_ADDR_ENABLE_REG 0x2290 | 16 | #define MV643XX_ETH_BASE_ADDR_ENABLE_REG 0x2290 | 
| 17 | 17 | ||
| 18 | #define MV643XX_TX_CSUM_DEFAULT_LIMIT 0 | ||
| 19 | |||
| 18 | struct mv643xx_eth_shared_platform_data { | 20 | struct mv643xx_eth_shared_platform_data { | 
| 19 | struct mbus_dram_target_info *dram; | 21 | struct mbus_dram_target_info *dram; | 
| 20 | struct platform_device *shared_smi; | 22 | struct platform_device *shared_smi; | 
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index eb06e58bed0b..59dc05f38247 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h  | |||
| @@ -953,7 +953,8 @@ struct net_device_ops { | |||
| 953 | #ifdef CONFIG_NET_POLL_CONTROLLER | 953 | #ifdef CONFIG_NET_POLL_CONTROLLER | 
| 954 | void (*ndo_poll_controller)(struct net_device *dev); | 954 | void (*ndo_poll_controller)(struct net_device *dev); | 
| 955 | int (*ndo_netpoll_setup)(struct net_device *dev, | 955 | int (*ndo_netpoll_setup)(struct net_device *dev, | 
| 956 | struct netpoll_info *info); | 956 | struct netpoll_info *info, | 
| 957 | gfp_t gfp); | ||
| 957 | void (*ndo_netpoll_cleanup)(struct net_device *dev); | 958 | void (*ndo_netpoll_cleanup)(struct net_device *dev); | 
| 958 | #endif | 959 | #endif | 
| 959 | int (*ndo_set_vf_mac)(struct net_device *dev, | 960 | int (*ndo_set_vf_mac)(struct net_device *dev, | 
| @@ -1300,6 +1301,8 @@ struct net_device { | |||
| 1300 | /* for setting kernel sock attribute on TCP connection setup */ | 1301 | /* for setting kernel sock attribute on TCP connection setup */ | 
| 1301 | #define GSO_MAX_SIZE 65536 | 1302 | #define GSO_MAX_SIZE 65536 | 
| 1302 | unsigned int gso_max_size; | 1303 | unsigned int gso_max_size; | 
| 1304 | #define GSO_MAX_SEGS 65535 | ||
| 1305 | u16 gso_max_segs; | ||
| 1303 | 1306 | ||
| 1304 | #ifdef CONFIG_DCB | 1307 | #ifdef CONFIG_DCB | 
| 1305 | /* Data Center Bridging netlink ops */ | 1308 | /* Data Center Bridging netlink ops */ | 
| @@ -1519,6 +1522,8 @@ struct packet_type { | |||
| 1519 | struct sk_buff **(*gro_receive)(struct sk_buff **head, | 1522 | struct sk_buff **(*gro_receive)(struct sk_buff **head, | 
| 1520 | struct sk_buff *skb); | 1523 | struct sk_buff *skb); | 
| 1521 | int (*gro_complete)(struct sk_buff *skb); | 1524 | int (*gro_complete)(struct sk_buff *skb); | 
| 1525 | bool (*id_match)(struct packet_type *ptype, | ||
| 1526 | struct sock *sk); | ||
| 1522 | void *af_packet_priv; | 1527 | void *af_packet_priv; | 
| 1523 | struct list_head list; | 1528 | struct list_head list; | 
| 1524 | }; | 1529 | }; | 
diff --git a/include/linux/netfilter/nf_conntrack_sip.h b/include/linux/netfilter/nf_conntrack_sip.h index 0dfc8b7210a3..89f2a627f3f0 100644 --- a/include/linux/netfilter/nf_conntrack_sip.h +++ b/include/linux/netfilter/nf_conntrack_sip.h  | |||
| @@ -164,7 +164,7 @@ extern int ct_sip_parse_address_param(const struct nf_conn *ct, const char *dptr | |||
| 164 | unsigned int dataoff, unsigned int datalen, | 164 | unsigned int dataoff, unsigned int datalen, | 
| 165 | const char *name, | 165 | const char *name, | 
| 166 | unsigned int *matchoff, unsigned int *matchlen, | 166 | unsigned int *matchoff, unsigned int *matchlen, | 
| 167 | union nf_inet_addr *addr); | 167 | union nf_inet_addr *addr, bool delim); | 
| 168 | extern int ct_sip_parse_numerical_param(const struct nf_conn *ct, const char *dptr, | 168 | extern int ct_sip_parse_numerical_param(const struct nf_conn *ct, const char *dptr, | 
| 169 | unsigned int off, unsigned int datalen, | 169 | unsigned int off, unsigned int datalen, | 
| 170 | const char *name, | 170 | const char *name, | 
diff --git a/include/linux/netpoll.h b/include/linux/netpoll.h index 28f5389c924b..66d5379c305e 100644 --- a/include/linux/netpoll.h +++ b/include/linux/netpoll.h  | |||
| @@ -23,6 +23,7 @@ struct netpoll { | |||
| 23 | u8 remote_mac[ETH_ALEN]; | 23 | u8 remote_mac[ETH_ALEN]; | 
| 24 | 24 | ||
| 25 | struct list_head rx; /* rx_np list element */ | 25 | struct list_head rx; /* rx_np list element */ | 
| 26 | struct rcu_head rcu; | ||
| 26 | }; | 27 | }; | 
| 27 | 28 | ||
| 28 | struct netpoll_info { | 29 | struct netpoll_info { | 
| @@ -38,28 +39,40 @@ struct netpoll_info { | |||
| 38 | struct delayed_work tx_work; | 39 | struct delayed_work tx_work; | 
| 39 | 40 | ||
| 40 | struct netpoll *netpoll; | 41 | struct netpoll *netpoll; | 
| 42 | struct rcu_head rcu; | ||
| 41 | }; | 43 | }; | 
| 42 | 44 | ||
| 43 | void netpoll_send_udp(struct netpoll *np, const char *msg, int len); | 45 | void netpoll_send_udp(struct netpoll *np, const char *msg, int len); | 
| 44 | void netpoll_print_options(struct netpoll *np); | 46 | void netpoll_print_options(struct netpoll *np); | 
| 45 | int netpoll_parse_options(struct netpoll *np, char *opt); | 47 | int netpoll_parse_options(struct netpoll *np, char *opt); | 
| 46 | int __netpoll_setup(struct netpoll *np, struct net_device *ndev); | 48 | int __netpoll_setup(struct netpoll *np, struct net_device *ndev, gfp_t gfp); | 
| 47 | int netpoll_setup(struct netpoll *np); | 49 | int netpoll_setup(struct netpoll *np); | 
| 48 | int netpoll_trap(void); | 50 | int netpoll_trap(void); | 
| 49 | void netpoll_set_trap(int trap); | 51 | void netpoll_set_trap(int trap); | 
| 50 | void __netpoll_cleanup(struct netpoll *np); | 52 | void __netpoll_cleanup(struct netpoll *np); | 
| 53 | void __netpoll_free_rcu(struct netpoll *np); | ||
| 51 | void netpoll_cleanup(struct netpoll *np); | 54 | void netpoll_cleanup(struct netpoll *np); | 
| 52 | int __netpoll_rx(struct sk_buff *skb); | 55 | int __netpoll_rx(struct sk_buff *skb, struct netpoll_info *npinfo); | 
| 53 | void netpoll_send_skb_on_dev(struct netpoll *np, struct sk_buff *skb, | 56 | void netpoll_send_skb_on_dev(struct netpoll *np, struct sk_buff *skb, | 
| 54 | struct net_device *dev); | 57 | struct net_device *dev); | 
| 55 | static inline void netpoll_send_skb(struct netpoll *np, struct sk_buff *skb) | 58 | static inline void netpoll_send_skb(struct netpoll *np, struct sk_buff *skb) | 
| 56 | { | 59 | { | 
| 60 | unsigned long flags; | ||
| 61 | local_irq_save(flags); | ||
| 57 | netpoll_send_skb_on_dev(np, skb, np->dev); | 62 | netpoll_send_skb_on_dev(np, skb, np->dev); | 
| 63 | local_irq_restore(flags); | ||
| 58 | } | 64 | } | 
| 59 | 65 | ||
| 60 | 66 | ||
| 61 | 67 | ||
| 62 | #ifdef CONFIG_NETPOLL | 68 | #ifdef CONFIG_NETPOLL | 
| 69 | static inline bool netpoll_rx_on(struct sk_buff *skb) | ||
| 70 | { | ||
| 71 | struct netpoll_info *npinfo = rcu_dereference_bh(skb->dev->npinfo); | ||
| 72 | |||
| 73 | return npinfo && (!list_empty(&npinfo->rx_np) || npinfo->rx_flags); | ||
| 74 | } | ||
| 75 | |||
| 63 | static inline bool netpoll_rx(struct sk_buff *skb) | 76 | static inline bool netpoll_rx(struct sk_buff *skb) | 
| 64 | { | 77 | { | 
| 65 | struct netpoll_info *npinfo; | 78 | struct netpoll_info *npinfo; | 
| @@ -67,14 +80,14 @@ static inline bool netpoll_rx(struct sk_buff *skb) | |||
| 67 | bool ret = false; | 80 | bool ret = false; | 
| 68 | 81 | ||
| 69 | local_irq_save(flags); | 82 | local_irq_save(flags); | 
| 70 | npinfo = rcu_dereference_bh(skb->dev->npinfo); | ||
| 71 | 83 | ||
| 72 | if (!npinfo || (list_empty(&npinfo->rx_np) && !npinfo->rx_flags)) | 84 | if (!netpoll_rx_on(skb)) | 
| 73 | goto out; | 85 | goto out; | 
| 74 | 86 | ||
| 87 | npinfo = rcu_dereference_bh(skb->dev->npinfo); | ||
| 75 | spin_lock(&npinfo->rx_lock); | 88 | spin_lock(&npinfo->rx_lock); | 
| 76 | /* check rx_flags again with the lock held */ | 89 | /* check rx_flags again with the lock held */ | 
| 77 | if (npinfo->rx_flags && __netpoll_rx(skb)) | 90 | if (npinfo->rx_flags && __netpoll_rx(skb, npinfo)) | 
| 78 | ret = true; | 91 | ret = true; | 
| 79 | spin_unlock(&npinfo->rx_lock); | 92 | spin_unlock(&npinfo->rx_lock); | 
| 80 | 93 | ||
| @@ -83,13 +96,6 @@ out: | |||
| 83 | return ret; | 96 | return ret; | 
| 84 | } | 97 | } | 
| 85 | 98 | ||
| 86 | static inline int netpoll_rx_on(struct sk_buff *skb) | ||
| 87 | { | ||
| 88 | struct netpoll_info *npinfo = rcu_dereference_bh(skb->dev->npinfo); | ||
| 89 | |||
| 90 | return npinfo && (!list_empty(&npinfo->rx_np) || npinfo->rx_flags); | ||
| 91 | } | ||
| 92 | |||
| 93 | static inline int netpoll_receive_skb(struct sk_buff *skb) | 99 | static inline int netpoll_receive_skb(struct sk_buff *skb) | 
| 94 | { | 100 | { | 
| 95 | if (!list_empty(&skb->dev->napi_list)) | 101 | if (!list_empty(&skb->dev->napi_list)) | 
| @@ -119,7 +125,7 @@ static inline void netpoll_poll_unlock(void *have) | |||
| 119 | } | 125 | } | 
| 120 | } | 126 | } | 
| 121 | 127 | ||
| 122 | static inline int netpoll_tx_running(struct net_device *dev) | 128 | static inline bool netpoll_tx_running(struct net_device *dev) | 
| 123 | { | 129 | { | 
| 124 | return irqs_disabled(); | 130 | return irqs_disabled(); | 
| 125 | } | 131 | } | 
| @@ -127,11 +133,11 @@ static inline int netpoll_tx_running(struct net_device *dev) | |||
| 127 | #else | 133 | #else | 
| 128 | static inline bool netpoll_rx(struct sk_buff *skb) | 134 | static inline bool netpoll_rx(struct sk_buff *skb) | 
| 129 | { | 135 | { | 
| 130 | return 0; | 136 | return false; | 
| 131 | } | 137 | } | 
| 132 | static inline int netpoll_rx_on(struct sk_buff *skb) | 138 | static inline bool netpoll_rx_on(struct sk_buff *skb) | 
| 133 | { | 139 | { | 
| 134 | return 0; | 140 | return false; | 
| 135 | } | 141 | } | 
| 136 | static inline int netpoll_receive_skb(struct sk_buff *skb) | 142 | static inline int netpoll_receive_skb(struct sk_buff *skb) | 
| 137 | { | 143 | { | 
| @@ -147,9 +153,9 @@ static inline void netpoll_poll_unlock(void *have) | |||
| 147 | static inline void netpoll_netdev_init(struct net_device *dev) | 153 | static inline void netpoll_netdev_init(struct net_device *dev) | 
| 148 | { | 154 | { | 
| 149 | } | 155 | } | 
| 150 | static inline int netpoll_tx_running(struct net_device *dev) | 156 | static inline bool netpoll_tx_running(struct net_device *dev) | 
| 151 | { | 157 | { | 
| 152 | return 0; | 158 | return false; | 
| 153 | } | 159 | } | 
| 154 | #endif | 160 | #endif | 
| 155 | 161 | ||
diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h index 880805774f9f..92ce5783b707 100644 --- a/include/linux/nfs_page.h +++ b/include/linux/nfs_page.h  | |||
| @@ -69,6 +69,7 @@ struct nfs_pageio_descriptor { | |||
| 69 | const struct nfs_pgio_completion_ops *pg_completion_ops; | 69 | const struct nfs_pgio_completion_ops *pg_completion_ops; | 
| 70 | struct pnfs_layout_segment *pg_lseg; | 70 | struct pnfs_layout_segment *pg_lseg; | 
| 71 | struct nfs_direct_req *pg_dreq; | 71 | struct nfs_direct_req *pg_dreq; | 
| 72 | void *pg_layout_private; | ||
| 72 | }; | 73 | }; | 
| 73 | 74 | ||
| 74 | #define NFS_WBACK_BUSY(req) (test_bit(PG_BUSY,&(req)->wb_flags)) | 75 | #define NFS_WBACK_BUSY(req) (test_bit(PG_BUSY,&(req)->wb_flags)) | 
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 00485e084394..ac7c8ae254f2 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h  | |||
| @@ -1248,6 +1248,7 @@ struct nfs_pgio_header { | |||
| 1248 | void (*release) (struct nfs_pgio_header *hdr); | 1248 | void (*release) (struct nfs_pgio_header *hdr); | 
| 1249 | const struct nfs_pgio_completion_ops *completion_ops; | 1249 | const struct nfs_pgio_completion_ops *completion_ops; | 
| 1250 | struct nfs_direct_req *dreq; | 1250 | struct nfs_direct_req *dreq; | 
| 1251 | void *layout_private; | ||
| 1251 | spinlock_t lock; | 1252 | spinlock_t lock; | 
| 1252 | /* fields protected by lock */ | 1253 | /* fields protected by lock */ | 
| 1253 | int pnfs_error; | 1254 | int pnfs_error; | 
diff --git a/include/linux/of.h b/include/linux/of.h index 5919ee33f2b7..1b1163225f3b 100644 --- a/include/linux/of.h +++ b/include/linux/of.h  | |||
| @@ -190,10 +190,17 @@ extern struct device_node *of_get_parent(const struct device_node *node); | |||
| 190 | extern struct device_node *of_get_next_parent(struct device_node *node); | 190 | extern struct device_node *of_get_next_parent(struct device_node *node); | 
| 191 | extern struct device_node *of_get_next_child(const struct device_node *node, | 191 | extern struct device_node *of_get_next_child(const struct device_node *node, | 
| 192 | struct device_node *prev); | 192 | struct device_node *prev); | 
| 193 | extern struct device_node *of_get_next_available_child( | ||
| 194 | const struct device_node *node, struct device_node *prev); | ||
| 195 | |||
| 193 | #define for_each_child_of_node(parent, child) \ | 196 | #define for_each_child_of_node(parent, child) \ | 
| 194 | for (child = of_get_next_child(parent, NULL); child != NULL; \ | 197 | for (child = of_get_next_child(parent, NULL); child != NULL; \ | 
| 195 | child = of_get_next_child(parent, child)) | 198 | child = of_get_next_child(parent, child)) | 
| 196 | 199 | ||
| 200 | #define for_each_available_child_of_node(parent, child) \ | ||
| 201 | for (child = of_get_next_available_child(parent, NULL); child != NULL; \ | ||
| 202 | child = of_get_next_available_child(parent, child)) | ||
| 203 | |||
| 197 | static inline int of_get_child_count(const struct device_node *np) | 204 | static inline int of_get_child_count(const struct device_node *np) | 
| 198 | { | 205 | { | 
| 199 | struct device_node *child; | 206 | struct device_node *child; | 
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 76c5c8b724a7..7602ccb3f40e 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h  | |||
| @@ -1272,7 +1272,8 @@ static inline bool perf_paranoid_kernel(void) | |||
| 1272 | extern void perf_event_init(void); | 1272 | extern void perf_event_init(void); | 
| 1273 | extern void perf_tp_event(u64 addr, u64 count, void *record, | 1273 | extern void perf_tp_event(u64 addr, u64 count, void *record, | 
| 1274 | int entry_size, struct pt_regs *regs, | 1274 | int entry_size, struct pt_regs *regs, | 
| 1275 | struct hlist_head *head, int rctx); | 1275 | struct hlist_head *head, int rctx, | 
| 1276 | struct task_struct *task); | ||
| 1276 | extern void perf_bp_event(struct perf_event *event, void *data); | 1277 | extern void perf_bp_event(struct perf_event *event, void *data); | 
| 1277 | 1278 | ||
| 1278 | #ifndef perf_misc_flags | 1279 | #ifndef perf_misc_flags | 
diff --git a/include/linux/pinctrl/consumer.h b/include/linux/pinctrl/consumer.h index 6dd96fb45482..e9b7f4350844 100644 --- a/include/linux/pinctrl/consumer.h +++ b/include/linux/pinctrl/consumer.h  | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | /* This struct is private to the core and should be regarded as a cookie */ | 20 | /* This struct is private to the core and should be regarded as a cookie */ | 
| 21 | struct pinctrl; | 21 | struct pinctrl; | 
| 22 | struct pinctrl_state; | 22 | struct pinctrl_state; | 
| 23 | struct device; | ||
| 23 | 24 | ||
| 24 | #ifdef CONFIG_PINCTRL | 25 | #ifdef CONFIG_PINCTRL | 
| 25 | 26 | ||
diff --git a/include/linux/sched.h b/include/linux/sched.h index c147e7024f11..b8c86648a2f9 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h  | |||
| @@ -334,14 +334,6 @@ static inline void lockup_detector_init(void) | |||
| 334 | } | 334 | } | 
| 335 | #endif | 335 | #endif | 
| 336 | 336 | ||
| 337 | #if defined(CONFIG_LOCKUP_DETECTOR) && defined(CONFIG_SUSPEND) | ||
| 338 | void lockup_detector_bootcpu_resume(void); | ||
| 339 | #else | ||
| 340 | static inline void lockup_detector_bootcpu_resume(void) | ||
| 341 | { | ||
| 342 | } | ||
| 343 | #endif | ||
| 344 | |||
| 345 | #ifdef CONFIG_DETECT_HUNG_TASK | 337 | #ifdef CONFIG_DETECT_HUNG_TASK | 
| 346 | extern unsigned int sysctl_hung_task_panic; | 338 | extern unsigned int sysctl_hung_task_panic; | 
| 347 | extern unsigned long sysctl_hung_task_check_count; | 339 | extern unsigned long sysctl_hung_task_check_count; | 
diff --git a/include/linux/security.h b/include/linux/security.h index 4e5a73cdbbef..3dea6a9d568f 100644 --- a/include/linux/security.h +++ b/include/linux/security.h  | |||
| @@ -1242,8 +1242,6 @@ static inline void security_free_mnt_opts(struct security_mnt_opts *opts) | |||
| 1242 | * Check that the @parent process has sufficient permission to trace the | 1242 | * Check that the @parent process has sufficient permission to trace the | 
| 1243 | * current process before allowing the current process to present itself | 1243 | * current process before allowing the current process to present itself | 
| 1244 | * to the @parent process for tracing. | 1244 | * to the @parent process for tracing. | 
| 1245 | * The parent process will still have to undergo the ptrace_access_check | ||
| 1246 | * checks before it is allowed to trace this one. | ||
| 1247 | * @parent contains the task_struct structure for debugger process. | 1245 | * @parent contains the task_struct structure for debugger process. | 
| 1248 | * Return 0 if permission is granted. | 1246 | * Return 0 if permission is granted. | 
| 1249 | * @capget: | 1247 | * @capget: | 
diff --git a/include/linux/string.h b/include/linux/string.h index ffe0442e18d2..b9178812d9df 100644 --- a/include/linux/string.h +++ b/include/linux/string.h  | |||
| @@ -144,8 +144,8 @@ static inline bool strstarts(const char *str, const char *prefix) | |||
| 144 | { | 144 | { | 
| 145 | return strncmp(str, prefix, strlen(prefix)) == 0; | 145 | return strncmp(str, prefix, strlen(prefix)) == 0; | 
| 146 | } | 146 | } | 
| 147 | #endif | ||
| 148 | 147 | ||
| 149 | extern size_t memweight(const void *ptr, size_t bytes); | 148 | extern size_t memweight(const void *ptr, size_t bytes); | 
| 150 | 149 | ||
| 150 | #endif /* __KERNEL__ */ | ||
| 151 | #endif /* _LINUX_STRING_H_ */ | 151 | #endif /* _LINUX_STRING_H_ */ | 
diff --git a/include/linux/time.h b/include/linux/time.h index c81c5e40fcb5..b51e664c83e7 100644 --- a/include/linux/time.h +++ b/include/linux/time.h  | |||
| @@ -107,11 +107,36 @@ static inline struct timespec timespec_sub(struct timespec lhs, | |||
| 107 | return ts_delta; | 107 | return ts_delta; | 
| 108 | } | 108 | } | 
| 109 | 109 | ||
| 110 | #define KTIME_MAX ((s64)~((u64)1 << 63)) | ||
| 111 | #if (BITS_PER_LONG == 64) | ||
| 112 | # define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC) | ||
| 113 | #else | ||
| 114 | # define KTIME_SEC_MAX LONG_MAX | ||
| 115 | #endif | ||
| 116 | |||
| 110 | /* | 117 | /* | 
| 111 | * Returns true if the timespec is norm, false if denorm: | 118 | * Returns true if the timespec is norm, false if denorm: | 
| 112 | */ | 119 | */ | 
| 113 | #define timespec_valid(ts) \ | 120 | static inline bool timespec_valid(const struct timespec *ts) | 
| 114 | (((ts)->tv_sec >= 0) && (((unsigned long) (ts)->tv_nsec) < NSEC_PER_SEC)) | 121 | { | 
| 122 | /* Dates before 1970 are bogus */ | ||
| 123 | if (ts->tv_sec < 0) | ||
| 124 | return false; | ||
| 125 | /* Can't have more nanoseconds then a second */ | ||
| 126 | if ((unsigned long)ts->tv_nsec >= NSEC_PER_SEC) | ||
| 127 | return false; | ||
| 128 | return true; | ||
| 129 | } | ||
| 130 | |||
| 131 | static inline bool timespec_valid_strict(const struct timespec *ts) | ||
| 132 | { | ||
| 133 | if (!timespec_valid(ts)) | ||
| 134 | return false; | ||
| 135 | /* Disallow values that could overflow ktime_t */ | ||
| 136 | if ((unsigned long long)ts->tv_sec >= KTIME_SEC_MAX) | ||
| 137 | return false; | ||
| 138 | return true; | ||
| 139 | } | ||
| 115 | 140 | ||
| 116 | extern void read_persistent_clock(struct timespec *ts); | 141 | extern void read_persistent_clock(struct timespec *ts); | 
| 117 | extern void read_boot_clock(struct timespec *ts); | 142 | extern void read_boot_clock(struct timespec *ts); | 
diff --git a/include/linux/timex.h b/include/linux/timex.h index 99bc88b1fc02..7c5ceb20e03a 100644 --- a/include/linux/timex.h +++ b/include/linux/timex.h  | |||
| @@ -232,7 +232,7 @@ struct timex { | |||
| 232 | * estimated error = NTP dispersion. | 232 | * estimated error = NTP dispersion. | 
| 233 | */ | 233 | */ | 
| 234 | extern unsigned long tick_usec; /* USER_HZ period (usec) */ | 234 | extern unsigned long tick_usec; /* USER_HZ period (usec) */ | 
| 235 | extern unsigned long tick_nsec; /* ACTHZ period (nsec) */ | 235 | extern unsigned long tick_nsec; /* SHIFTED_HZ period (nsec) */ | 
| 236 | 236 | ||
| 237 | extern void ntp_init(void); | 237 | extern void ntp_init(void); | 
| 238 | extern void ntp_clear(void); | 238 | extern void ntp_clear(void); | 
diff --git a/include/linux/topology.h b/include/linux/topology.h index e91cd43394df..fec12d667211 100644 --- a/include/linux/topology.h +++ b/include/linux/topology.h  | |||
| @@ -164,6 +164,7 @@ int arch_update_cpu_topology(void); | |||
| 164 | | 0*SD_SHARE_CPUPOWER \ | 164 | | 0*SD_SHARE_CPUPOWER \ | 
| 165 | | 0*SD_SHARE_PKG_RESOURCES \ | 165 | | 0*SD_SHARE_PKG_RESOURCES \ | 
| 166 | | 0*SD_SERIALIZE \ | 166 | | 0*SD_SERIALIZE \ | 
| 167 | | 1*SD_PREFER_SIBLING \ | ||
| 167 | , \ | 168 | , \ | 
| 168 | .last_balance = jiffies, \ | 169 | .last_balance = jiffies, \ | 
| 169 | .balance_interval = 1, \ | 170 | .balance_interval = 1, \ | 
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index c66fe3332d83..50c3e8fa06a8 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h  | |||
| @@ -104,7 +104,6 @@ static inline void wait_on_inode(struct inode *inode) | |||
| 104 | wait_on_bit(&inode->i_state, __I_NEW, inode_wait, TASK_UNINTERRUPTIBLE); | 104 | wait_on_bit(&inode->i_state, __I_NEW, inode_wait, TASK_UNINTERRUPTIBLE); | 
| 105 | } | 105 | } | 
| 106 | 106 | ||
| 107 | |||
| 108 | /* | 107 | /* | 
| 109 | * mm/page-writeback.c | 108 | * mm/page-writeback.c | 
| 110 | */ | 109 | */ | 
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 493fa0c79005..3d254e10ff30 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h  | |||
| @@ -96,6 +96,7 @@ enum ieee80211_band { | |||
| 96 | * is not permitted. | 96 | * is not permitted. | 
| 97 | * @IEEE80211_CHAN_NO_HT40MINUS: extension channel below this channel | 97 | * @IEEE80211_CHAN_NO_HT40MINUS: extension channel below this channel | 
| 98 | * is not permitted. | 98 | * is not permitted. | 
| 99 | * @IEEE80211_CHAN_NO_OFDM: OFDM is not allowed on this channel. | ||
| 99 | */ | 100 | */ | 
| 100 | enum ieee80211_channel_flags { | 101 | enum ieee80211_channel_flags { | 
| 101 | IEEE80211_CHAN_DISABLED = 1<<0, | 102 | IEEE80211_CHAN_DISABLED = 1<<0, | 
| @@ -104,6 +105,7 @@ enum ieee80211_channel_flags { | |||
| 104 | IEEE80211_CHAN_RADAR = 1<<3, | 105 | IEEE80211_CHAN_RADAR = 1<<3, | 
| 105 | IEEE80211_CHAN_NO_HT40PLUS = 1<<4, | 106 | IEEE80211_CHAN_NO_HT40PLUS = 1<<4, | 
| 106 | IEEE80211_CHAN_NO_HT40MINUS = 1<<5, | 107 | IEEE80211_CHAN_NO_HT40MINUS = 1<<5, | 
| 108 | IEEE80211_CHAN_NO_OFDM = 1<<6, | ||
| 107 | }; | 109 | }; | 
| 108 | 110 | ||
| 109 | #define IEEE80211_CHAN_NO_HT40 \ | 111 | #define IEEE80211_CHAN_NO_HT40 \ | 
diff --git a/include/net/codel.h b/include/net/codel.h index 550debfc2403..389cf621161d 100644 --- a/include/net/codel.h +++ b/include/net/codel.h  | |||
| @@ -305,6 +305,8 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch, | |||
| 305 | } | 305 | } | 
| 306 | } | 306 | } | 
| 307 | } else if (drop) { | 307 | } else if (drop) { | 
| 308 | u32 delta; | ||
| 309 | |||
| 308 | if (params->ecn && INET_ECN_set_ce(skb)) { | 310 | if (params->ecn && INET_ECN_set_ce(skb)) { | 
| 309 | stats->ecn_mark++; | 311 | stats->ecn_mark++; | 
| 310 | } else { | 312 | } else { | 
| @@ -320,9 +322,11 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch, | |||
| 320 | * assume that the drop rate that controlled the queue on the | 322 | * assume that the drop rate that controlled the queue on the | 
| 321 | * last cycle is a good starting point to control it now. | 323 | * last cycle is a good starting point to control it now. | 
| 322 | */ | 324 | */ | 
| 323 | if (codel_time_before(now - vars->drop_next, | 325 | delta = vars->count - vars->lastcount; | 
| 326 | if (delta > 1 && | ||
| 327 | codel_time_before(now - vars->drop_next, | ||
| 324 | 16 * params->interval)) { | 328 | 16 * params->interval)) { | 
| 325 | vars->count = (vars->count - vars->lastcount) | 1; | 329 | vars->count = delta; | 
| 326 | /* we dont care if rec_inv_sqrt approximation | 330 | /* we dont care if rec_inv_sqrt approximation | 
| 327 | * is not very precise : | 331 | * is not very precise : | 
| 328 | * Next Newton steps will correct it quadratically. | 332 | * Next Newton steps will correct it quadratically. | 
diff --git a/include/net/dst.h b/include/net/dst.h index baf597890064..621e3513ef5e 100644 --- a/include/net/dst.h +++ b/include/net/dst.h  | |||
| @@ -110,7 +110,7 @@ struct dst_entry { | |||
| 110 | }; | 110 | }; | 
| 111 | 111 | ||
| 112 | extern u32 *dst_cow_metrics_generic(struct dst_entry *dst, unsigned long old); | 112 | extern u32 *dst_cow_metrics_generic(struct dst_entry *dst, unsigned long old); | 
| 113 | extern const u32 dst_default_metrics[RTAX_MAX]; | 113 | extern const u32 dst_default_metrics[]; | 
| 114 | 114 | ||
| 115 | #define DST_METRICS_READ_ONLY 0x1UL | 115 | #define DST_METRICS_READ_ONLY 0x1UL | 
| 116 | #define __DST_METRICS_PTR(Y) \ | 116 | #define __DST_METRICS_PTR(Y) \ | 
diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h index 5ee66f517b4f..ba1d3615acbb 100644 --- a/include/net/inet_connection_sock.h +++ b/include/net/inet_connection_sock.h  | |||
| @@ -39,6 +39,7 @@ struct inet_connection_sock_af_ops { | |||
| 39 | int (*queue_xmit)(struct sk_buff *skb, struct flowi *fl); | 39 | int (*queue_xmit)(struct sk_buff *skb, struct flowi *fl); | 
| 40 | void (*send_check)(struct sock *sk, struct sk_buff *skb); | 40 | void (*send_check)(struct sock *sk, struct sk_buff *skb); | 
| 41 | int (*rebuild_header)(struct sock *sk); | 41 | int (*rebuild_header)(struct sock *sk); | 
| 42 | void (*sk_rx_dst_set)(struct sock *sk, const struct sk_buff *skb); | ||
| 42 | int (*conn_request)(struct sock *sk, struct sk_buff *skb); | 43 | int (*conn_request)(struct sock *sk, struct sk_buff *skb); | 
| 43 | struct sock *(*syn_recv_sock)(struct sock *sk, struct sk_buff *skb, | 44 | struct sock *(*syn_recv_sock)(struct sock *sk, struct sk_buff *skb, | 
| 44 | struct request_sock *req, | 45 | struct request_sock *req, | 
diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h index 83b567fe1941..613cfa401672 100644 --- a/include/net/inet_sock.h +++ b/include/net/inet_sock.h  | |||
| @@ -249,13 +249,4 @@ static inline __u8 inet_sk_flowi_flags(const struct sock *sk) | |||
| 249 | return flags; | 249 | return flags; | 
| 250 | } | 250 | } | 
| 251 | 251 | ||
| 252 | static inline void inet_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb) | ||
| 253 | { | ||
| 254 | struct dst_entry *dst = skb_dst(skb); | ||
| 255 | |||
| 256 | dst_hold(dst); | ||
| 257 | sk->sk_rx_dst = dst; | ||
| 258 | inet_sk(sk)->rx_dst_ifindex = skb->skb_iif; | ||
| 259 | } | ||
| 260 | |||
| 261 | #endif /* _INET_SOCK_H */ | 252 | #endif /* _INET_SOCK_H */ | 
diff --git a/include/net/ip.h b/include/net/ip.h index bd5e444a19ce..5a5d84d3d2c6 100644 --- a/include/net/ip.h +++ b/include/net/ip.h  | |||
| @@ -120,7 +120,7 @@ extern struct sk_buff *__ip_make_skb(struct sock *sk, | |||
| 120 | struct flowi4 *fl4, | 120 | struct flowi4 *fl4, | 
| 121 | struct sk_buff_head *queue, | 121 | struct sk_buff_head *queue, | 
| 122 | struct inet_cork *cork); | 122 | struct inet_cork *cork); | 
| 123 | extern int ip_send_skb(struct sk_buff *skb); | 123 | extern int ip_send_skb(struct net *net, struct sk_buff *skb); | 
| 124 | extern int ip_push_pending_frames(struct sock *sk, struct flowi4 *fl4); | 124 | extern int ip_push_pending_frames(struct sock *sk, struct flowi4 *fl4); | 
| 125 | extern void ip_flush_pending_frames(struct sock *sk); | 125 | extern void ip_flush_pending_frames(struct sock *sk); | 
| 126 | extern struct sk_buff *ip_make_skb(struct sock *sk, | 126 | extern struct sk_buff *ip_make_skb(struct sock *sk, | 
diff --git a/include/net/llc.h b/include/net/llc.h index 226c846cab08..f2d0fc570527 100644 --- a/include/net/llc.h +++ b/include/net/llc.h  | |||
| @@ -133,7 +133,7 @@ extern int llc_build_and_send_ui_pkt(struct llc_sap *sap, struct sk_buff *skb, | |||
| 133 | extern void llc_sap_handler(struct llc_sap *sap, struct sk_buff *skb); | 133 | extern void llc_sap_handler(struct llc_sap *sap, struct sk_buff *skb); | 
| 134 | extern void llc_conn_handler(struct llc_sap *sap, struct sk_buff *skb); | 134 | extern void llc_conn_handler(struct llc_sap *sap, struct sk_buff *skb); | 
| 135 | 135 | ||
| 136 | extern int llc_station_init(void); | 136 | extern void llc_station_init(void); | 
| 137 | extern void llc_station_exit(void); | 137 | extern void llc_station_exit(void); | 
| 138 | 138 | ||
| 139 | #ifdef CONFIG_PROC_FS | 139 | #ifdef CONFIG_PROC_FS | 
diff --git a/include/net/scm.h b/include/net/scm.h index 079d7887dac1..7dc0854f0b38 100644 --- a/include/net/scm.h +++ b/include/net/scm.h  | |||
| @@ -70,9 +70,11 @@ static __inline__ void scm_destroy(struct scm_cookie *scm) | |||
| 70 | } | 70 | } | 
| 71 | 71 | ||
| 72 | static __inline__ int scm_send(struct socket *sock, struct msghdr *msg, | 72 | static __inline__ int scm_send(struct socket *sock, struct msghdr *msg, | 
| 73 | struct scm_cookie *scm) | 73 | struct scm_cookie *scm, bool forcecreds) | 
| 74 | { | 74 | { | 
| 75 | memset(scm, 0, sizeof(*scm)); | 75 | memset(scm, 0, sizeof(*scm)); | 
| 76 | if (forcecreds) | ||
| 77 | scm_set_cred(scm, task_tgid(current), current_cred()); | ||
| 76 | unix_get_peersec_dgram(sock, scm); | 78 | unix_get_peersec_dgram(sock, scm); | 
| 77 | if (msg->msg_controllen <= 0) | 79 | if (msg->msg_controllen <= 0) | 
| 78 | return 0; | 80 | return 0; | 
diff --git a/include/net/sock.h b/include/net/sock.h index b3730239bf18..72132aef53fc 100644 --- a/include/net/sock.h +++ b/include/net/sock.h  | |||
| @@ -218,6 +218,7 @@ struct cg_proto; | |||
| 218 | * @sk_route_nocaps: forbidden route capabilities (e.g NETIF_F_GSO_MASK) | 218 | * @sk_route_nocaps: forbidden route capabilities (e.g NETIF_F_GSO_MASK) | 
| 219 | * @sk_gso_type: GSO type (e.g. %SKB_GSO_TCPV4) | 219 | * @sk_gso_type: GSO type (e.g. %SKB_GSO_TCPV4) | 
| 220 | * @sk_gso_max_size: Maximum GSO segment size to build | 220 | * @sk_gso_max_size: Maximum GSO segment size to build | 
| 221 | * @sk_gso_max_segs: Maximum number of GSO segments | ||
| 221 | * @sk_lingertime: %SO_LINGER l_linger setting | 222 | * @sk_lingertime: %SO_LINGER l_linger setting | 
| 222 | * @sk_backlog: always used with the per-socket spinlock held | 223 | * @sk_backlog: always used with the per-socket spinlock held | 
| 223 | * @sk_callback_lock: used with the callbacks in the end of this struct | 224 | * @sk_callback_lock: used with the callbacks in the end of this struct | 
| @@ -338,6 +339,7 @@ struct sock { | |||
| 338 | netdev_features_t sk_route_nocaps; | 339 | netdev_features_t sk_route_nocaps; | 
| 339 | int sk_gso_type; | 340 | int sk_gso_type; | 
| 340 | unsigned int sk_gso_max_size; | 341 | unsigned int sk_gso_max_size; | 
| 342 | u16 sk_gso_max_segs; | ||
| 341 | int sk_rcvlowat; | 343 | int sk_rcvlowat; | 
| 342 | unsigned long sk_lingertime; | 344 | unsigned long sk_lingertime; | 
| 343 | struct sk_buff_head sk_error_queue; | 345 | struct sk_buff_head sk_error_queue; | 
diff --git a/include/net/tcp.h b/include/net/tcp.h index e19124b84cd2..1f000ffe7075 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h  | |||
| @@ -464,6 +464,7 @@ extern int tcp_disconnect(struct sock *sk, int flags); | |||
| 464 | void tcp_connect_init(struct sock *sk); | 464 | void tcp_connect_init(struct sock *sk); | 
| 465 | void tcp_finish_connect(struct sock *sk, struct sk_buff *skb); | 465 | void tcp_finish_connect(struct sock *sk, struct sk_buff *skb); | 
| 466 | int tcp_send_rcvq(struct sock *sk, struct msghdr *msg, size_t size); | 466 | int tcp_send_rcvq(struct sock *sk, struct msghdr *msg, size_t size); | 
| 467 | void inet_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb); | ||
| 467 | 468 | ||
| 468 | /* From syncookies.c */ | 469 | /* From syncookies.c */ | 
| 469 | extern __u32 syncookie_secret[2][16-4+SHA_DIGEST_WORDS]; | 470 | extern __u32 syncookie_secret[2][16-4+SHA_DIGEST_WORDS]; | 
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index d9509eb29b80..976a81abe1a2 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h  | |||
| @@ -213,6 +213,9 @@ struct xfrm_state { | |||
| 213 | struct xfrm_lifetime_cur curlft; | 213 | struct xfrm_lifetime_cur curlft; | 
| 214 | struct tasklet_hrtimer mtimer; | 214 | struct tasklet_hrtimer mtimer; | 
| 215 | 215 | ||
| 216 | /* used to fix curlft->add_time when changing date */ | ||
| 217 | long saved_tmo; | ||
| 218 | |||
| 216 | /* Last used time */ | 219 | /* Last used time */ | 
| 217 | unsigned long lastused; | 220 | unsigned long lastused; | 
| 218 | 221 | ||
| @@ -238,6 +241,7 @@ static inline struct net *xs_net(struct xfrm_state *x) | |||
| 238 | 241 | ||
| 239 | /* xflags - make enum if more show up */ | 242 | /* xflags - make enum if more show up */ | 
| 240 | #define XFRM_TIME_DEFER 1 | 243 | #define XFRM_TIME_DEFER 1 | 
| 244 | #define XFRM_SOFT_EXPIRE 2 | ||
| 241 | 245 | ||
| 242 | enum { | 246 | enum { | 
| 243 | XFRM_STATE_VOID, | 247 | XFRM_STATE_VOID, | 
| @@ -288,6 +292,8 @@ struct xfrm_policy_afinfo { | |||
| 288 | struct flowi *fl, | 292 | struct flowi *fl, | 
| 289 | int reverse); | 293 | int reverse); | 
| 290 | int (*get_tos)(const struct flowi *fl); | 294 | int (*get_tos)(const struct flowi *fl); | 
| 295 | void (*init_dst)(struct net *net, | ||
| 296 | struct xfrm_dst *dst); | ||
| 291 | int (*init_path)(struct xfrm_dst *path, | 297 | int (*init_path)(struct xfrm_dst *path, | 
| 292 | struct dst_entry *dst, | 298 | struct dst_entry *dst, | 
| 293 | int nfheader_len); | 299 | int nfheader_len); | 
diff --git a/include/sound/pcm.h b/include/sound/pcm.h index c75c0d1a85e2..cdca2ab1e711 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h  | |||
| @@ -1075,7 +1075,8 @@ static inline void snd_pcm_limit_isa_dma_size(int dma, size_t *max) | |||
| 1075 | const char *snd_pcm_format_name(snd_pcm_format_t format); | 1075 | const char *snd_pcm_format_name(snd_pcm_format_t format); | 
| 1076 | 1076 | ||
| 1077 | /** | 1077 | /** | 
| 1078 | * Get a string naming the direction of a stream | 1078 | * snd_pcm_stream_str - Get a string naming the direction of a stream | 
| 1079 | * @substream: the pcm substream instance | ||
| 1079 | */ | 1080 | */ | 
| 1080 | static inline const char *snd_pcm_stream_str(struct snd_pcm_substream *substream) | 1081 | static inline const char *snd_pcm_stream_str(struct snd_pcm_substream *substream) | 
| 1081 | { | 1082 | { | 
diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h index 128ce46fa48a..015cea01ae39 100644 --- a/include/target/target_core_base.h +++ b/include/target/target_core_base.h  | |||
| @@ -503,8 +503,6 @@ struct se_cmd { | |||
| 503 | u32 se_ordered_id; | 503 | u32 se_ordered_id; | 
| 504 | /* Total size in bytes associated with command */ | 504 | /* Total size in bytes associated with command */ | 
| 505 | u32 data_length; | 505 | u32 data_length; | 
| 506 | /* SCSI Presented Data Transfer Length */ | ||
| 507 | u32 cmd_spdtl; | ||
| 508 | u32 residual_count; | 506 | u32 residual_count; | 
| 509 | u32 orig_fe_lun; | 507 | u32 orig_fe_lun; | 
| 510 | /* Persistent Reservation key */ | 508 | /* Persistent Reservation key */ | 
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index ea7a2035456d..5a8671e8a67f 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h  | |||
| @@ -73,6 +73,9 @@ DECLARE_EVENT_CLASS(sched_wakeup_template, | |||
| 73 | __entry->prio = p->prio; | 73 | __entry->prio = p->prio; | 
| 74 | __entry->success = success; | 74 | __entry->success = success; | 
| 75 | __entry->target_cpu = task_cpu(p); | 75 | __entry->target_cpu = task_cpu(p); | 
| 76 | ) | ||
| 77 | TP_perf_assign( | ||
| 78 | __perf_task(p); | ||
| 76 | ), | 79 | ), | 
| 77 | 80 | ||
| 78 | TP_printk("comm=%s pid=%d prio=%d success=%d target_cpu=%03d", | 81 | TP_printk("comm=%s pid=%d prio=%d success=%d target_cpu=%03d", | 
| @@ -325,6 +328,7 @@ DECLARE_EVENT_CLASS(sched_stat_template, | |||
| 325 | ) | 328 | ) | 
| 326 | TP_perf_assign( | 329 | TP_perf_assign( | 
| 327 | __perf_count(delay); | 330 | __perf_count(delay); | 
| 331 | __perf_task(tsk); | ||
| 328 | ), | 332 | ), | 
| 329 | 333 | ||
| 330 | TP_printk("comm=%s pid=%d delay=%Lu [ns]", | 334 | TP_printk("comm=%s pid=%d delay=%Lu [ns]", | 
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index c6bc2faaf261..a763888a36f9 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h  | |||
| @@ -712,6 +712,9 @@ __attribute__((section("_ftrace_events"))) *__event_##call = &event_##call | |||
| 712 | #undef __perf_count | 712 | #undef __perf_count | 
| 713 | #define __perf_count(c) __count = (c) | 713 | #define __perf_count(c) __count = (c) | 
| 714 | 714 | ||
| 715 | #undef __perf_task | ||
| 716 | #define __perf_task(t) __task = (t) | ||
| 717 | |||
| 715 | #undef TP_perf_assign | 718 | #undef TP_perf_assign | 
| 716 | #define TP_perf_assign(args...) args | 719 | #define TP_perf_assign(args...) args | 
| 717 | 720 | ||
| @@ -725,6 +728,7 @@ perf_trace_##call(void *__data, proto) \ | |||
| 725 | struct ftrace_raw_##call *entry; \ | 728 | struct ftrace_raw_##call *entry; \ | 
| 726 | struct pt_regs __regs; \ | 729 | struct pt_regs __regs; \ | 
| 727 | u64 __addr = 0, __count = 1; \ | 730 | u64 __addr = 0, __count = 1; \ | 
| 731 | struct task_struct *__task = NULL; \ | ||
| 728 | struct hlist_head *head; \ | 732 | struct hlist_head *head; \ | 
| 729 | int __entry_size; \ | 733 | int __entry_size; \ | 
| 730 | int __data_size; \ | 734 | int __data_size; \ | 
| @@ -752,7 +756,7 @@ perf_trace_##call(void *__data, proto) \ | |||
| 752 | \ | 756 | \ | 
| 753 | head = this_cpu_ptr(event_call->perf_events); \ | 757 | head = this_cpu_ptr(event_call->perf_events); \ | 
| 754 | perf_trace_buf_submit(entry, __entry_size, rctx, __addr, \ | 758 | perf_trace_buf_submit(entry, __entry_size, rctx, __addr, \ | 
| 755 | __count, &__regs, head); \ | 759 | __count, &__regs, head, __task); \ | 
| 756 | } | 760 | } | 
| 757 | 761 | ||
| 758 | /* | 762 | /* | 
diff --git a/include/xen/events.h b/include/xen/events.h index 9c641deb65d2..04399b28e821 100644 --- a/include/xen/events.h +++ b/include/xen/events.h  | |||
| @@ -58,8 +58,6 @@ void notify_remote_via_irq(int irq); | |||
| 58 | 58 | ||
| 59 | void xen_irq_resume(void); | 59 | void xen_irq_resume(void); | 
| 60 | 60 | ||
| 61 | void xen_hvm_prepare_kexec(struct shared_info *sip, unsigned long pfn); | ||
| 62 | |||
| 63 | /* Clear an irq's pending state, in preparation for polling on it */ | 61 | /* Clear an irq's pending state, in preparation for polling on it */ | 
| 64 | void xen_clear_irq_pending(int irq); | 62 | void xen_clear_irq_pending(int irq); | 
| 65 | void xen_set_irq_pending(int irq); | 63 | void xen_set_irq_pending(int irq); | 
