diff options
Diffstat (limited to 'include')
36 files changed, 182 insertions, 91 deletions
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index 56e6b68c8d2f..94383a70c1a3 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h | |||
| @@ -274,15 +274,12 @@ struct acpi_device_wakeup { | |||
| 274 | }; | 274 | }; |
| 275 | 275 | ||
| 276 | struct acpi_device_physical_node { | 276 | struct acpi_device_physical_node { |
| 277 | u8 node_id; | 277 | unsigned int node_id; |
| 278 | struct list_head node; | 278 | struct list_head node; |
| 279 | struct device *dev; | 279 | struct device *dev; |
| 280 | bool put_online:1; | 280 | bool put_online:1; |
| 281 | }; | 281 | }; |
| 282 | 282 | ||
| 283 | /* set maximum of physical nodes to 32 for expansibility */ | ||
| 284 | #define ACPI_MAX_PHYSICAL_NODE 32 | ||
| 285 | |||
| 286 | /* Device */ | 283 | /* Device */ |
| 287 | struct acpi_device { | 284 | struct acpi_device { |
| 288 | int device_type; | 285 | int device_type; |
| @@ -302,10 +299,9 @@ struct acpi_device { | |||
| 302 | struct acpi_driver *driver; | 299 | struct acpi_driver *driver; |
| 303 | void *driver_data; | 300 | void *driver_data; |
| 304 | struct device dev; | 301 | struct device dev; |
| 305 | u8 physical_node_count; | 302 | unsigned int physical_node_count; |
| 306 | struct list_head physical_node_list; | 303 | struct list_head physical_node_list; |
| 307 | struct mutex physical_node_lock; | 304 | struct mutex physical_node_lock; |
| 308 | DECLARE_BITMAP(physical_node_id_bitmap, ACPI_MAX_PHYSICAL_NODE); | ||
| 309 | struct list_head power_dependent; | 305 | struct list_head power_dependent; |
| 310 | void (*remove)(struct acpi_device *); | 306 | void (*remove)(struct acpi_device *); |
| 311 | }; | 307 | }; |
| @@ -445,7 +441,11 @@ struct acpi_pci_root { | |||
| 445 | }; | 441 | }; |
| 446 | 442 | ||
| 447 | /* helper */ | 443 | /* helper */ |
| 448 | acpi_handle acpi_get_child(acpi_handle, u64); | 444 | acpi_handle acpi_find_child(acpi_handle, u64, bool); |
| 445 | static inline acpi_handle acpi_get_child(acpi_handle handle, u64 addr) | ||
| 446 | { | ||
| 447 | return acpi_find_child(handle, addr, false); | ||
| 448 | } | ||
| 449 | int acpi_is_root_bridge(acpi_handle); | 449 | int acpi_is_root_bridge(acpi_handle); |
| 450 | struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle); | 450 | struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle); |
| 451 | #define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)ACPI_HANDLE(dev)) | 451 | #define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)ACPI_HANDLE(dev)) |
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h index 2f47ade1b567..0807ddf97b05 100644 --- a/include/asm-generic/pgtable.h +++ b/include/asm-generic/pgtable.h | |||
| @@ -417,6 +417,36 @@ static inline pmd_t pmd_mksoft_dirty(pmd_t pmd) | |||
| 417 | { | 417 | { |
| 418 | return pmd; | 418 | return pmd; |
| 419 | } | 419 | } |
| 420 | |||
| 421 | static inline pte_t pte_swp_mksoft_dirty(pte_t pte) | ||
| 422 | { | ||
| 423 | return pte; | ||
| 424 | } | ||
| 425 | |||
| 426 | static inline int pte_swp_soft_dirty(pte_t pte) | ||
| 427 | { | ||
| 428 | return 0; | ||
| 429 | } | ||
| 430 | |||
| 431 | static inline pte_t pte_swp_clear_soft_dirty(pte_t pte) | ||
| 432 | { | ||
| 433 | return pte; | ||
| 434 | } | ||
| 435 | |||
| 436 | static inline pte_t pte_file_clear_soft_dirty(pte_t pte) | ||
| 437 | { | ||
| 438 | return pte; | ||
| 439 | } | ||
| 440 | |||
| 441 | static inline pte_t pte_file_mksoft_dirty(pte_t pte) | ||
| 442 | { | ||
| 443 | return pte; | ||
| 444 | } | ||
| 445 | |||
| 446 | static inline int pte_file_soft_dirty(pte_t pte) | ||
| 447 | { | ||
| 448 | return 0; | ||
| 449 | } | ||
| 420 | #endif | 450 | #endif |
| 421 | 451 | ||
| 422 | #ifndef __HAVE_PFNMAP_TRACKING | 452 | #ifndef __HAVE_PFNMAP_TRACKING |
diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h index 13821c339a41..5672d7ea1fa0 100644 --- a/include/asm-generic/tlb.h +++ b/include/asm-generic/tlb.h | |||
| @@ -112,7 +112,7 @@ struct mmu_gather { | |||
| 112 | 112 | ||
| 113 | #define HAVE_GENERIC_MMU_GATHER | 113 | #define HAVE_GENERIC_MMU_GATHER |
| 114 | 114 | ||
| 115 | void tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, bool fullmm); | 115 | void tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, unsigned long start, unsigned long end); |
| 116 | void tlb_flush_mmu(struct mmu_gather *tlb); | 116 | void tlb_flush_mmu(struct mmu_gather *tlb); |
| 117 | void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, | 117 | void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, |
| 118 | unsigned long end); | 118 | unsigned long end); |
diff --git a/include/drm/drm_fixed.h b/include/drm/drm_fixed.h index f5e1168c7647..d639049a613d 100644 --- a/include/drm/drm_fixed.h +++ b/include/drm/drm_fixed.h | |||
| @@ -84,12 +84,12 @@ static inline int drm_fixp2int(int64_t a) | |||
| 84 | return ((s64)a) >> DRM_FIXED_POINT; | 84 | return ((s64)a) >> DRM_FIXED_POINT; |
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | static inline s64 drm_fixp_msbset(int64_t a) | 87 | static inline unsigned drm_fixp_msbset(int64_t a) |
| 88 | { | 88 | { |
| 89 | unsigned shift, sign = (a >> 63) & 1; | 89 | unsigned shift, sign = (a >> 63) & 1; |
| 90 | 90 | ||
| 91 | for (shift = 62; shift > 0; --shift) | 91 | for (shift = 62; shift > 0; --shift) |
| 92 | if ((a >> shift) != sign) | 92 | if (((a >> shift) & 1) != sign) |
| 93 | return shift; | 93 | return shift; |
| 94 | 94 | ||
| 95 | return 0; | 95 | return 0; |
| @@ -100,9 +100,9 @@ static inline s64 drm_fixp_mul(s64 a, s64 b) | |||
| 100 | unsigned shift = drm_fixp_msbset(a) + drm_fixp_msbset(b); | 100 | unsigned shift = drm_fixp_msbset(a) + drm_fixp_msbset(b); |
| 101 | s64 result; | 101 | s64 result; |
| 102 | 102 | ||
| 103 | if (shift > 63) { | 103 | if (shift > 61) { |
| 104 | shift = shift - 63; | 104 | shift = shift - 61; |
| 105 | a >>= shift >> 1; | 105 | a >>= (shift >> 1) + (shift & 1); |
| 106 | b >>= shift >> 1; | 106 | b >>= shift >> 1; |
| 107 | } else | 107 | } else |
| 108 | shift = 0; | 108 | shift = 0; |
| @@ -120,7 +120,7 @@ static inline s64 drm_fixp_mul(s64 a, s64 b) | |||
| 120 | 120 | ||
| 121 | static inline s64 drm_fixp_div(s64 a, s64 b) | 121 | static inline s64 drm_fixp_div(s64 a, s64 b) |
| 122 | { | 122 | { |
| 123 | unsigned shift = 63 - drm_fixp_msbset(a); | 123 | unsigned shift = 62 - drm_fixp_msbset(a); |
| 124 | s64 result; | 124 | s64 result; |
| 125 | 125 | ||
| 126 | a <<= shift; | 126 | a <<= shift; |
| @@ -154,7 +154,7 @@ static inline s64 drm_fixp_exp(s64 x) | |||
| 154 | } | 154 | } |
| 155 | 155 | ||
| 156 | if (x < 0) | 156 | if (x < 0) |
| 157 | sum = drm_fixp_div(1, sum); | 157 | sum = drm_fixp_div(DRM_FIXED_ONE, sum); |
| 158 | 158 | ||
| 159 | return sum; | 159 | return sum; |
| 160 | } | 160 | } |
diff --git a/include/linux/firewire.h b/include/linux/firewire.h index 3b0e820375ab..5d7782e42b8f 100644 --- a/include/linux/firewire.h +++ b/include/linux/firewire.h | |||
| @@ -436,6 +436,7 @@ struct fw_iso_context { | |||
| 436 | int type; | 436 | int type; |
| 437 | int channel; | 437 | int channel; |
| 438 | int speed; | 438 | int speed; |
| 439 | bool drop_overflow_headers; | ||
| 439 | size_t header_size; | 440 | size_t header_size; |
| 440 | union { | 441 | union { |
| 441 | fw_iso_callback_t sc; | 442 | fw_iso_callback_t sc; |
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h index 4372658c73ae..120d57a1c3a5 100644 --- a/include/linux/ftrace_event.h +++ b/include/linux/ftrace_event.h | |||
| @@ -78,6 +78,11 @@ struct trace_iterator { | |||
| 78 | /* trace_seq for __print_flags() and __print_symbolic() etc. */ | 78 | /* trace_seq for __print_flags() and __print_symbolic() etc. */ |
| 79 | struct trace_seq tmp_seq; | 79 | struct trace_seq tmp_seq; |
| 80 | 80 | ||
| 81 | cpumask_var_t started; | ||
| 82 | |||
| 83 | /* it's true when current open file is snapshot */ | ||
| 84 | bool snapshot; | ||
| 85 | |||
| 81 | /* The below is zeroed out in pipe_read */ | 86 | /* The below is zeroed out in pipe_read */ |
| 82 | struct trace_seq seq; | 87 | struct trace_seq seq; |
| 83 | struct trace_entry *ent; | 88 | struct trace_entry *ent; |
| @@ -90,10 +95,7 @@ struct trace_iterator { | |||
| 90 | loff_t pos; | 95 | loff_t pos; |
| 91 | long idx; | 96 | long idx; |
| 92 | 97 | ||
| 93 | cpumask_var_t started; | 98 | /* All new field here will be zeroed out in pipe_read */ |
| 94 | |||
| 95 | /* it's true when current open file is snapshot */ | ||
| 96 | bool snapshot; | ||
| 97 | }; | 99 | }; |
| 98 | 100 | ||
| 99 | enum trace_iter_flags { | 101 | enum trace_iter_flags { |
| @@ -332,7 +334,7 @@ extern int trace_define_field(struct ftrace_event_call *call, const char *type, | |||
| 332 | const char *name, int offset, int size, | 334 | const char *name, int offset, int size, |
| 333 | int is_signed, int filter_type); | 335 | int is_signed, int filter_type); |
| 334 | extern int trace_add_event_call(struct ftrace_event_call *call); | 336 | extern int trace_add_event_call(struct ftrace_event_call *call); |
| 335 | extern void trace_remove_event_call(struct ftrace_event_call *call); | 337 | extern int trace_remove_event_call(struct ftrace_event_call *call); |
| 336 | 338 | ||
| 337 | #define is_signed_type(type) (((type)(-1)) < (type)1) | 339 | #define is_signed_type(type) (((type)(-1)) < (type)1) |
| 338 | 340 | ||
diff --git a/include/linux/iio/trigger.h b/include/linux/iio/trigger.h index 3869c525b052..369cf2cd5144 100644 --- a/include/linux/iio/trigger.h +++ b/include/linux/iio/trigger.h | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | */ | 8 | */ |
| 9 | #include <linux/irq.h> | 9 | #include <linux/irq.h> |
| 10 | #include <linux/module.h> | 10 | #include <linux/module.h> |
| 11 | #include <linux/atomic.h> | ||
| 11 | 12 | ||
| 12 | #ifndef _IIO_TRIGGER_H_ | 13 | #ifndef _IIO_TRIGGER_H_ |
| 13 | #define _IIO_TRIGGER_H_ | 14 | #define _IIO_TRIGGER_H_ |
| @@ -61,7 +62,7 @@ struct iio_trigger { | |||
| 61 | 62 | ||
| 62 | struct list_head list; | 63 | struct list_head list; |
| 63 | struct list_head alloc_list; | 64 | struct list_head alloc_list; |
| 64 | int use_count; | 65 | atomic_t use_count; |
| 65 | 66 | ||
| 66 | struct irq_chip subirq_chip; | 67 | struct irq_chip subirq_chip; |
| 67 | int subirq_base; | 68 | int subirq_base; |
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 3bef14c6586b..482ad2d84a32 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
| @@ -629,7 +629,7 @@ extern void ftrace_dump(enum ftrace_dump_mode oops_dump_mode); | |||
| 629 | static inline void tracing_start(void) { } | 629 | static inline void tracing_start(void) { } |
| 630 | static inline void tracing_stop(void) { } | 630 | static inline void tracing_stop(void) { } |
| 631 | static inline void ftrace_off_permanent(void) { } | 631 | static inline void ftrace_off_permanent(void) { } |
| 632 | static inline void trace_dump_stack(void) { } | 632 | static inline void trace_dump_stack(int skip) { } |
| 633 | 633 | ||
| 634 | static inline void tracing_on(void) { } | 634 | static inline void tracing_on(void) { } |
| 635 | static inline void tracing_off(void) { } | 635 | static inline void tracing_off(void) { } |
diff --git a/include/linux/mfd/ti_am335x_tscadc.h b/include/linux/mfd/ti_am335x_tscadc.h index 8d73fe29796a..db1791bb997a 100644 --- a/include/linux/mfd/ti_am335x_tscadc.h +++ b/include/linux/mfd/ti_am335x_tscadc.h | |||
| @@ -113,11 +113,27 @@ | |||
| 113 | #define CNTRLREG_8WIRE CNTRLREG_AFE_CTRL(3) | 113 | #define CNTRLREG_8WIRE CNTRLREG_AFE_CTRL(3) |
| 114 | #define CNTRLREG_TSCENB BIT(7) | 114 | #define CNTRLREG_TSCENB BIT(7) |
| 115 | 115 | ||
| 116 | /* FIFO READ Register */ | ||
| 117 | #define FIFOREAD_DATA_MASK (0xfff << 0) | ||
| 118 | #define FIFOREAD_CHNLID_MASK (0xf << 16) | ||
| 119 | |||
| 120 | /* Sequencer Status */ | ||
| 121 | #define SEQ_STATUS BIT(5) | ||
| 122 | |||
| 116 | #define ADC_CLK 3000000 | 123 | #define ADC_CLK 3000000 |
| 117 | #define MAX_CLK_DIV 7 | 124 | #define MAX_CLK_DIV 7 |
| 118 | #define TOTAL_STEPS 16 | 125 | #define TOTAL_STEPS 16 |
| 119 | #define TOTAL_CHANNELS 8 | 126 | #define TOTAL_CHANNELS 8 |
| 120 | 127 | ||
| 128 | /* | ||
| 129 | * ADC runs at 3MHz, and it takes | ||
| 130 | * 15 cycles to latch one data output. | ||
| 131 | * Hence the idle time for ADC to | ||
| 132 | * process one sample data would be | ||
| 133 | * around 5 micro seconds. | ||
| 134 | */ | ||
| 135 | #define IDLE_TIMEOUT 5 /* microsec */ | ||
| 136 | |||
| 121 | #define TSCADC_CELLS 2 | 137 | #define TSCADC_CELLS 2 |
| 122 | 138 | ||
| 123 | struct ti_tscadc_dev { | 139 | struct ti_tscadc_dev { |
diff --git a/include/linux/mlx5/device.h b/include/linux/mlx5/device.h index 8de8d8f22384..68029b30c3dc 100644 --- a/include/linux/mlx5/device.h +++ b/include/linux/mlx5/device.h | |||
| @@ -309,21 +309,20 @@ struct mlx5_hca_cap { | |||
| 309 | __be16 max_desc_sz_rq; | 309 | __be16 max_desc_sz_rq; |
| 310 | u8 rsvd21[2]; | 310 | u8 rsvd21[2]; |
| 311 | __be16 max_desc_sz_sq_dc; | 311 | __be16 max_desc_sz_sq_dc; |
| 312 | u8 rsvd22[4]; | 312 | __be32 max_qp_mcg; |
| 313 | __be16 max_qp_mcg; | 313 | u8 rsvd22[3]; |
| 314 | u8 rsvd23; | ||
| 315 | u8 log_max_mcg; | 314 | u8 log_max_mcg; |
| 316 | u8 rsvd24; | 315 | u8 rsvd23; |
| 317 | u8 log_max_pd; | 316 | u8 log_max_pd; |
| 318 | u8 rsvd25; | 317 | u8 rsvd24; |
| 319 | u8 log_max_xrcd; | 318 | u8 log_max_xrcd; |
| 320 | u8 rsvd26[42]; | 319 | u8 rsvd25[42]; |
| 321 | __be16 log_uar_page_sz; | 320 | __be16 log_uar_page_sz; |
| 322 | u8 rsvd27[28]; | 321 | u8 rsvd26[28]; |
| 323 | u8 log_msx_atomic_size_qp; | 322 | u8 log_msx_atomic_size_qp; |
| 324 | u8 rsvd28[2]; | 323 | u8 rsvd27[2]; |
| 325 | u8 log_msx_atomic_size_dc; | 324 | u8 log_msx_atomic_size_dc; |
| 326 | u8 rsvd29[76]; | 325 | u8 rsvd28[76]; |
| 327 | }; | 326 | }; |
| 328 | 327 | ||
| 329 | 328 | ||
| @@ -472,9 +471,8 @@ struct mlx5_eqe_cmd { | |||
| 472 | struct mlx5_eqe_page_req { | 471 | struct mlx5_eqe_page_req { |
| 473 | u8 rsvd0[2]; | 472 | u8 rsvd0[2]; |
| 474 | __be16 func_id; | 473 | __be16 func_id; |
| 475 | u8 rsvd1[2]; | 474 | __be32 num_pages; |
| 476 | __be16 num_pages; | 475 | __be32 rsvd1[5]; |
| 477 | __be32 rsvd2[5]; | ||
| 478 | }; | 476 | }; |
| 479 | 477 | ||
| 480 | union ev_data { | 478 | union ev_data { |
| @@ -690,6 +688,26 @@ struct mlx5_query_cq_mbox_out { | |||
| 690 | __be64 pas[0]; | 688 | __be64 pas[0]; |
| 691 | }; | 689 | }; |
| 692 | 690 | ||
| 691 | struct mlx5_enable_hca_mbox_in { | ||
| 692 | struct mlx5_inbox_hdr hdr; | ||
| 693 | u8 rsvd[8]; | ||
| 694 | }; | ||
| 695 | |||
| 696 | struct mlx5_enable_hca_mbox_out { | ||
| 697 | struct mlx5_outbox_hdr hdr; | ||
| 698 | u8 rsvd[8]; | ||
| 699 | }; | ||
| 700 | |||
| 701 | struct mlx5_disable_hca_mbox_in { | ||
| 702 | struct mlx5_inbox_hdr hdr; | ||
| 703 | u8 rsvd[8]; | ||
| 704 | }; | ||
| 705 | |||
| 706 | struct mlx5_disable_hca_mbox_out { | ||
| 707 | struct mlx5_outbox_hdr hdr; | ||
| 708 | u8 rsvd[8]; | ||
| 709 | }; | ||
| 710 | |||
| 693 | struct mlx5_eq_context { | 711 | struct mlx5_eq_context { |
| 694 | u8 status; | 712 | u8 status; |
| 695 | u8 ec_oi; | 713 | u8 ec_oi; |
diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index f22e4419839b..8888381fc150 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h | |||
| @@ -101,6 +101,8 @@ enum { | |||
| 101 | MLX5_CMD_OP_QUERY_ADAPTER = 0x101, | 101 | MLX5_CMD_OP_QUERY_ADAPTER = 0x101, |
| 102 | MLX5_CMD_OP_INIT_HCA = 0x102, | 102 | MLX5_CMD_OP_INIT_HCA = 0x102, |
| 103 | MLX5_CMD_OP_TEARDOWN_HCA = 0x103, | 103 | MLX5_CMD_OP_TEARDOWN_HCA = 0x103, |
| 104 | MLX5_CMD_OP_ENABLE_HCA = 0x104, | ||
| 105 | MLX5_CMD_OP_DISABLE_HCA = 0x105, | ||
| 104 | MLX5_CMD_OP_QUERY_PAGES = 0x107, | 106 | MLX5_CMD_OP_QUERY_PAGES = 0x107, |
| 105 | MLX5_CMD_OP_MANAGE_PAGES = 0x108, | 107 | MLX5_CMD_OP_MANAGE_PAGES = 0x108, |
| 106 | MLX5_CMD_OP_SET_HCA_CAP = 0x109, | 108 | MLX5_CMD_OP_SET_HCA_CAP = 0x109, |
| @@ -356,7 +358,7 @@ struct mlx5_caps { | |||
| 356 | u32 reserved_lkey; | 358 | u32 reserved_lkey; |
| 357 | u8 local_ca_ack_delay; | 359 | u8 local_ca_ack_delay; |
| 358 | u8 log_max_mcg; | 360 | u8 log_max_mcg; |
| 359 | u16 max_qp_mcg; | 361 | u32 max_qp_mcg; |
| 360 | int min_page_sz; | 362 | int min_page_sz; |
| 361 | }; | 363 | }; |
| 362 | 364 | ||
| @@ -689,8 +691,8 @@ void mlx5_pagealloc_cleanup(struct mlx5_core_dev *dev); | |||
| 689 | int mlx5_pagealloc_start(struct mlx5_core_dev *dev); | 691 | int mlx5_pagealloc_start(struct mlx5_core_dev *dev); |
| 690 | void mlx5_pagealloc_stop(struct mlx5_core_dev *dev); | 692 | void mlx5_pagealloc_stop(struct mlx5_core_dev *dev); |
| 691 | void mlx5_core_req_pages_handler(struct mlx5_core_dev *dev, u16 func_id, | 693 | void mlx5_core_req_pages_handler(struct mlx5_core_dev *dev, u16 func_id, |
| 692 | s16 npages); | 694 | s32 npages); |
| 693 | int mlx5_satisfy_startup_pages(struct mlx5_core_dev *dev); | 695 | int mlx5_satisfy_startup_pages(struct mlx5_core_dev *dev, int boot); |
| 694 | int mlx5_reclaim_startup_pages(struct mlx5_core_dev *dev); | 696 | int mlx5_reclaim_startup_pages(struct mlx5_core_dev *dev); |
| 695 | void mlx5_register_debugfs(void); | 697 | void mlx5_register_debugfs(void); |
| 696 | void mlx5_unregister_debugfs(void); | 698 | void mlx5_unregister_debugfs(void); |
| @@ -729,9 +731,6 @@ void mlx5_cq_debugfs_cleanup(struct mlx5_core_dev *dev); | |||
| 729 | int mlx5_db_alloc(struct mlx5_core_dev *dev, struct mlx5_db *db); | 731 | int mlx5_db_alloc(struct mlx5_core_dev *dev, struct mlx5_db *db); |
| 730 | void mlx5_db_free(struct mlx5_core_dev *dev, struct mlx5_db *db); | 732 | void mlx5_db_free(struct mlx5_core_dev *dev, struct mlx5_db *db); |
| 731 | 733 | ||
| 732 | typedef void (*health_handler_t)(struct pci_dev *pdev, struct health_buffer __iomem *buf, int size); | ||
| 733 | int mlx5_register_health_report_handler(health_handler_t handler); | ||
| 734 | void mlx5_unregister_health_report_handler(void); | ||
| 735 | const char *mlx5_command_str(int command); | 734 | const char *mlx5_command_str(int command); |
| 736 | int mlx5_cmdif_debugfs_init(struct mlx5_core_dev *dev); | 735 | int mlx5_cmdif_debugfs_init(struct mlx5_core_dev *dev); |
| 737 | void mlx5_cmdif_debugfs_cleanup(struct mlx5_core_dev *dev); | 736 | void mlx5_cmdif_debugfs_cleanup(struct mlx5_core_dev *dev); |
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index b62d4af6c667..45e921401b06 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h | |||
| @@ -361,7 +361,8 @@ struct ssb_device_id { | |||
| 361 | __u16 vendor; | 361 | __u16 vendor; |
| 362 | __u16 coreid; | 362 | __u16 coreid; |
| 363 | __u8 revision; | 363 | __u8 revision; |
| 364 | }; | 364 | __u8 __pad; |
| 365 | } __attribute__((packed, aligned(2))); | ||
| 365 | #define SSB_DEVICE(_vendor, _coreid, _revision) \ | 366 | #define SSB_DEVICE(_vendor, _coreid, _revision) \ |
| 366 | { .vendor = _vendor, .coreid = _coreid, .revision = _revision, } | 367 | { .vendor = _vendor, .coreid = _coreid, .revision = _revision, } |
| 367 | #define SSB_DEVTABLE_END \ | 368 | #define SSB_DEVTABLE_END \ |
| @@ -377,7 +378,7 @@ struct bcma_device_id { | |||
| 377 | __u16 id; | 378 | __u16 id; |
| 378 | __u8 rev; | 379 | __u8 rev; |
| 379 | __u8 class; | 380 | __u8 class; |
| 380 | }; | 381 | } __attribute__((packed,aligned(2))); |
| 381 | #define BCMA_CORE(_manuf, _id, _rev, _class) \ | 382 | #define BCMA_CORE(_manuf, _id, _rev, _class) \ |
| 382 | { .manuf = _manuf, .id = _id, .rev = _rev, .class = _class, } | 383 | { .manuf = _manuf, .id = _id, .rev = _rev, .class = _class, } |
| 383 | #define BCMA_CORETABLE_END \ | 384 | #define BCMA_CORETABLE_END \ |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 0741a1e919a5..9a4156845e93 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -973,7 +973,7 @@ struct net_device_ops { | |||
| 973 | gfp_t gfp); | 973 | gfp_t gfp); |
| 974 | void (*ndo_netpoll_cleanup)(struct net_device *dev); | 974 | void (*ndo_netpoll_cleanup)(struct net_device *dev); |
| 975 | #endif | 975 | #endif |
| 976 | #ifdef CONFIG_NET_LL_RX_POLL | 976 | #ifdef CONFIG_NET_RX_BUSY_POLL |
| 977 | int (*ndo_busy_poll)(struct napi_struct *dev); | 977 | int (*ndo_busy_poll)(struct napi_struct *dev); |
| 978 | #endif | 978 | #endif |
| 979 | int (*ndo_set_vf_mac)(struct net_device *dev, | 979 | int (*ndo_set_vf_mac)(struct net_device *dev, |
diff --git a/include/linux/regmap.h b/include/linux/regmap.h index 75981d0b57dc..580a5320cc96 100644 --- a/include/linux/regmap.h +++ b/include/linux/regmap.h | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | 15 | ||
| 16 | #include <linux/list.h> | 16 | #include <linux/list.h> |
| 17 | #include <linux/rbtree.h> | 17 | #include <linux/rbtree.h> |
| 18 | #include <linux/err.h> | ||
| 18 | 19 | ||
| 19 | struct module; | 20 | struct module; |
| 20 | struct device; | 21 | struct device; |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 50d04b92ceda..e9995eb5985c 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -314,6 +314,7 @@ struct nsproxy; | |||
| 314 | struct user_namespace; | 314 | struct user_namespace; |
| 315 | 315 | ||
| 316 | #ifdef CONFIG_MMU | 316 | #ifdef CONFIG_MMU |
| 317 | extern unsigned long mmap_legacy_base(void); | ||
| 317 | extern void arch_pick_mmap_layout(struct mm_struct *mm); | 318 | extern void arch_pick_mmap_layout(struct mm_struct *mm); |
| 318 | extern unsigned long | 319 | extern unsigned long |
| 319 | arch_get_unmapped_area(struct file *, unsigned long, unsigned long, | 320 | arch_get_unmapped_area(struct file *, unsigned long, unsigned long, |
| @@ -1532,6 +1533,8 @@ static inline pid_t task_pgrp_nr(struct task_struct *tsk) | |||
| 1532 | * Test if a process is not yet dead (at most zombie state) | 1533 | * Test if a process is not yet dead (at most zombie state) |
| 1533 | * If pid_alive fails, then pointers within the task structure | 1534 | * If pid_alive fails, then pointers within the task structure |
| 1534 | * can be stale and must not be dereferenced. | 1535 | * can be stale and must not be dereferenced. |
| 1536 | * | ||
| 1537 | * Return: 1 if the process is alive. 0 otherwise. | ||
| 1535 | */ | 1538 | */ |
| 1536 | static inline int pid_alive(struct task_struct *p) | 1539 | static inline int pid_alive(struct task_struct *p) |
| 1537 | { | 1540 | { |
| @@ -1543,6 +1546,8 @@ static inline int pid_alive(struct task_struct *p) | |||
| 1543 | * @tsk: Task structure to be checked. | 1546 | * @tsk: Task structure to be checked. |
| 1544 | * | 1547 | * |
| 1545 | * Check if a task structure is the first user space task the kernel created. | 1548 | * Check if a task structure is the first user space task the kernel created. |
| 1549 | * | ||
| 1550 | * Return: 1 if the task structure is init. 0 otherwise. | ||
| 1546 | */ | 1551 | */ |
| 1547 | static inline int is_global_init(struct task_struct *tsk) | 1552 | static inline int is_global_init(struct task_struct *tsk) |
| 1548 | { | 1553 | { |
| @@ -1628,6 +1633,7 @@ extern void thread_group_cputime_adjusted(struct task_struct *p, cputime_t *ut, | |||
| 1628 | #define PF_MEMPOLICY 0x10000000 /* Non-default NUMA mempolicy */ | 1633 | #define PF_MEMPOLICY 0x10000000 /* Non-default NUMA mempolicy */ |
| 1629 | #define PF_MUTEX_TESTER 0x20000000 /* Thread belongs to the rt mutex tester */ | 1634 | #define PF_MUTEX_TESTER 0x20000000 /* Thread belongs to the rt mutex tester */ |
| 1630 | #define PF_FREEZER_SKIP 0x40000000 /* Freezer should not count it as freezable */ | 1635 | #define PF_FREEZER_SKIP 0x40000000 /* Freezer should not count it as freezable */ |
| 1636 | #define PF_SUSPEND_TASK 0x80000000 /* this thread called freeze_processes and should not be frozen */ | ||
| 1631 | 1637 | ||
| 1632 | /* | 1638 | /* |
| 1633 | * Only the _current_ task can read/write to tsk->flags, but other | 1639 | * Only the _current_ task can read/write to tsk->flags, but other |
| @@ -1893,6 +1899,8 @@ extern struct task_struct *idle_task(int cpu); | |||
| 1893 | /** | 1899 | /** |
| 1894 | * is_idle_task - is the specified task an idle task? | 1900 | * is_idle_task - is the specified task an idle task? |
| 1895 | * @p: the task in question. | 1901 | * @p: the task in question. |
| 1902 | * | ||
| 1903 | * Return: 1 if @p is an idle task. 0 otherwise. | ||
| 1896 | */ | 1904 | */ |
| 1897 | static inline bool is_idle_task(const struct task_struct *p) | 1905 | static inline bool is_idle_task(const struct task_struct *p) |
| 1898 | { | 1906 | { |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 5afefa01a13c..3b71a4e83642 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
| @@ -501,7 +501,7 @@ struct sk_buff { | |||
| 501 | /* 7/9 bit hole (depending on ndisc_nodetype presence) */ | 501 | /* 7/9 bit hole (depending on ndisc_nodetype presence) */ |
| 502 | kmemcheck_bitfield_end(flags2); | 502 | kmemcheck_bitfield_end(flags2); |
| 503 | 503 | ||
| 504 | #if defined CONFIG_NET_DMA || defined CONFIG_NET_LL_RX_POLL | 504 | #if defined CONFIG_NET_DMA || defined CONFIG_NET_RX_BUSY_POLL |
| 505 | union { | 505 | union { |
| 506 | unsigned int napi_id; | 506 | unsigned int napi_id; |
| 507 | dma_cookie_t dma_cookie; | 507 | dma_cookie_t dma_cookie; |
diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h index 7d537ced949a..75f34949d9ab 100644 --- a/include/linux/spinlock.h +++ b/include/linux/spinlock.h | |||
| @@ -117,9 +117,17 @@ do { \ | |||
| 117 | #endif /*arch_spin_is_contended*/ | 117 | #endif /*arch_spin_is_contended*/ |
| 118 | #endif | 118 | #endif |
| 119 | 119 | ||
| 120 | /* The lock does not imply full memory barrier. */ | 120 | /* |
| 121 | #ifndef ARCH_HAS_SMP_MB_AFTER_LOCK | 121 | * Despite its name it doesn't necessarily has to be a full barrier. |
| 122 | static inline void smp_mb__after_lock(void) { smp_mb(); } | 122 | * It should only guarantee that a STORE before the critical section |
| 123 | * can not be reordered with a LOAD inside this section. | ||
| 124 | * spin_lock() is the one-way barrier, this LOAD can not escape out | ||
| 125 | * of the region. So the default implementation simply ensures that | ||
| 126 | * a STORE can not move into the critical section, smp_wmb() should | ||
| 127 | * serialize it with another STORE done by spin_lock(). | ||
| 128 | */ | ||
| 129 | #ifndef smp_mb__before_spinlock | ||
| 130 | #define smp_mb__before_spinlock() smp_wmb() | ||
| 123 | #endif | 131 | #endif |
| 124 | 132 | ||
| 125 | /** | 133 | /** |
diff --git a/include/linux/sunrpc/sched.h b/include/linux/sunrpc/sched.h index 6d870353674a..1821445708d6 100644 --- a/include/linux/sunrpc/sched.h +++ b/include/linux/sunrpc/sched.h | |||
| @@ -121,6 +121,7 @@ struct rpc_task_setup { | |||
| 121 | #define RPC_TASK_SOFTCONN 0x0400 /* Fail if can't connect */ | 121 | #define RPC_TASK_SOFTCONN 0x0400 /* Fail if can't connect */ |
| 122 | #define RPC_TASK_SENT 0x0800 /* message was sent */ | 122 | #define RPC_TASK_SENT 0x0800 /* message was sent */ |
| 123 | #define RPC_TASK_TIMEOUT 0x1000 /* fail with ETIMEDOUT on timeout */ | 123 | #define RPC_TASK_TIMEOUT 0x1000 /* fail with ETIMEDOUT on timeout */ |
| 124 | #define RPC_TASK_NOCONNECT 0x2000 /* return ENOTCONN if not connected */ | ||
| 124 | 125 | ||
| 125 | #define RPC_IS_ASYNC(t) ((t)->tk_flags & RPC_TASK_ASYNC) | 126 | #define RPC_IS_ASYNC(t) ((t)->tk_flags & RPC_TASK_ASYNC) |
| 126 | #define RPC_IS_SWAPPER(t) ((t)->tk_flags & RPC_TASK_SWAPPER) | 127 | #define RPC_IS_SWAPPER(t) ((t)->tk_flags & RPC_TASK_SWAPPER) |
diff --git a/include/linux/swapops.h b/include/linux/swapops.h index c5fd30d2a415..8d4fa82bfb91 100644 --- a/include/linux/swapops.h +++ b/include/linux/swapops.h | |||
| @@ -67,6 +67,8 @@ static inline swp_entry_t pte_to_swp_entry(pte_t pte) | |||
| 67 | swp_entry_t arch_entry; | 67 | swp_entry_t arch_entry; |
| 68 | 68 | ||
| 69 | BUG_ON(pte_file(pte)); | 69 | BUG_ON(pte_file(pte)); |
| 70 | if (pte_swp_soft_dirty(pte)) | ||
| 71 | pte = pte_swp_clear_soft_dirty(pte); | ||
| 70 | arch_entry = __pte_to_swp_entry(pte); | 72 | arch_entry = __pte_to_swp_entry(pte); |
| 71 | return swp_entry(__swp_type(arch_entry), __swp_offset(arch_entry)); | 73 | return swp_entry(__swp_type(arch_entry), __swp_offset(arch_entry)); |
| 72 | } | 74 | } |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 4147d700a293..84662ecc7b51 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -802,9 +802,14 @@ asmlinkage long sys_vfork(void); | |||
| 802 | asmlinkage long sys_clone(unsigned long, unsigned long, int __user *, int, | 802 | asmlinkage long sys_clone(unsigned long, unsigned long, int __user *, int, |
| 803 | int __user *); | 803 | int __user *); |
| 804 | #else | 804 | #else |
| 805 | #ifdef CONFIG_CLONE_BACKWARDS3 | ||
| 806 | asmlinkage long sys_clone(unsigned long, unsigned long, int, int __user *, | ||
| 807 | int __user *, int); | ||
| 808 | #else | ||
| 805 | asmlinkage long sys_clone(unsigned long, unsigned long, int __user *, | 809 | asmlinkage long sys_clone(unsigned long, unsigned long, int __user *, |
| 806 | int __user *, int); | 810 | int __user *, int); |
| 807 | #endif | 811 | #endif |
| 812 | #endif | ||
| 808 | 813 | ||
| 809 | asmlinkage long sys_execve(const char __user *filename, | 814 | asmlinkage long sys_execve(const char __user *filename, |
| 810 | const char __user *const __user *argv, | 815 | const char __user *const __user *argv, |
diff --git a/include/linux/tick.h b/include/linux/tick.h index 9180f4b85e6d..62bd8b72873c 100644 --- a/include/linux/tick.h +++ b/include/linux/tick.h | |||
| @@ -174,10 +174,4 @@ static inline void tick_nohz_task_switch(struct task_struct *tsk) { } | |||
| 174 | #endif | 174 | #endif |
| 175 | 175 | ||
| 176 | 176 | ||
| 177 | # ifdef CONFIG_CPU_IDLE_GOV_MENU | ||
| 178 | extern void menu_hrtimer_cancel(void); | ||
| 179 | # else | ||
| 180 | static inline void menu_hrtimer_cancel(void) {} | ||
| 181 | # endif /* CONFIG_CPU_IDLE_GOV_MENU */ | ||
| 182 | |||
| 183 | #endif | 177 | #endif |
diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h index b6b215f13b45..14105c26a836 100644 --- a/include/linux/user_namespace.h +++ b/include/linux/user_namespace.h | |||
| @@ -23,6 +23,7 @@ struct user_namespace { | |||
| 23 | struct uid_gid_map projid_map; | 23 | struct uid_gid_map projid_map; |
| 24 | atomic_t count; | 24 | atomic_t count; |
| 25 | struct user_namespace *parent; | 25 | struct user_namespace *parent; |
| 26 | int level; | ||
| 26 | kuid_t owner; | 27 | kuid_t owner; |
| 27 | kgid_t group; | 28 | kgid_t group; |
| 28 | unsigned int proc_inum; | 29 | unsigned int proc_inum; |
diff --git a/include/linux/vmpressure.h b/include/linux/vmpressure.h index 76be077340ea..7dc17e2456de 100644 --- a/include/linux/vmpressure.h +++ b/include/linux/vmpressure.h | |||
| @@ -12,7 +12,7 @@ struct vmpressure { | |||
| 12 | unsigned long scanned; | 12 | unsigned long scanned; |
| 13 | unsigned long reclaimed; | 13 | unsigned long reclaimed; |
| 14 | /* The lock is used to keep the scanned/reclaimed above in sync. */ | 14 | /* The lock is used to keep the scanned/reclaimed above in sync. */ |
| 15 | struct mutex sr_lock; | 15 | struct spinlock sr_lock; |
| 16 | 16 | ||
| 17 | /* The list of vmpressure_event structs. */ | 17 | /* The list of vmpressure_event structs. */ |
| 18 | struct list_head events; | 18 | struct list_head events; |
| @@ -30,6 +30,7 @@ extern void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, | |||
| 30 | extern void vmpressure_prio(gfp_t gfp, struct mem_cgroup *memcg, int prio); | 30 | extern void vmpressure_prio(gfp_t gfp, struct mem_cgroup *memcg, int prio); |
| 31 | 31 | ||
| 32 | extern void vmpressure_init(struct vmpressure *vmpr); | 32 | extern void vmpressure_init(struct vmpressure *vmpr); |
| 33 | extern void vmpressure_cleanup(struct vmpressure *vmpr); | ||
| 33 | extern struct vmpressure *memcg_to_vmpressure(struct mem_cgroup *memcg); | 34 | extern struct vmpressure *memcg_to_vmpressure(struct mem_cgroup *memcg); |
| 34 | extern struct cgroup_subsys_state *vmpressure_to_css(struct vmpressure *vmpr); | 35 | extern struct cgroup_subsys_state *vmpressure_to_css(struct vmpressure *vmpr); |
| 35 | extern struct vmpressure *css_to_vmpressure(struct cgroup_subsys_state *css); | 36 | extern struct vmpressure *css_to_vmpressure(struct cgroup_subsys_state *css); |
diff --git a/include/media/v4l2-ctrls.h b/include/media/v4l2-ctrls.h index 7343a27fe819..47ada23345a1 100644 --- a/include/media/v4l2-ctrls.h +++ b/include/media/v4l2-ctrls.h | |||
| @@ -22,6 +22,7 @@ | |||
| 22 | #define _V4L2_CTRLS_H | 22 | #define _V4L2_CTRLS_H |
| 23 | 23 | ||
| 24 | #include <linux/list.h> | 24 | #include <linux/list.h> |
| 25 | #include <linux/mutex.h> | ||
| 25 | #include <linux/videodev2.h> | 26 | #include <linux/videodev2.h> |
| 26 | 27 | ||
| 27 | /* forward references */ | 28 | /* forward references */ |
diff --git a/include/net/busy_poll.h b/include/net/busy_poll.h index a14339c2985f..8a358a2c97e6 100644 --- a/include/net/busy_poll.h +++ b/include/net/busy_poll.h | |||
| @@ -27,7 +27,7 @@ | |||
| 27 | #include <linux/netdevice.h> | 27 | #include <linux/netdevice.h> |
| 28 | #include <net/ip.h> | 28 | #include <net/ip.h> |
| 29 | 29 | ||
| 30 | #ifdef CONFIG_NET_LL_RX_POLL | 30 | #ifdef CONFIG_NET_RX_BUSY_POLL |
| 31 | 31 | ||
| 32 | struct napi_struct; | 32 | struct napi_struct; |
| 33 | extern unsigned int sysctl_net_busy_read __read_mostly; | 33 | extern unsigned int sysctl_net_busy_read __read_mostly; |
| @@ -122,7 +122,7 @@ static inline bool sk_busy_loop(struct sock *sk, int nonblock) | |||
| 122 | if (rc > 0) | 122 | if (rc > 0) |
| 123 | /* local bh are disabled so it is ok to use _BH */ | 123 | /* local bh are disabled so it is ok to use _BH */ |
| 124 | NET_ADD_STATS_BH(sock_net(sk), | 124 | NET_ADD_STATS_BH(sock_net(sk), |
| 125 | LINUX_MIB_LOWLATENCYRXPACKETS, rc); | 125 | LINUX_MIB_BUSYPOLLRXPACKETS, rc); |
| 126 | 126 | ||
| 127 | } while (!nonblock && skb_queue_empty(&sk->sk_receive_queue) && | 127 | } while (!nonblock && skb_queue_empty(&sk->sk_receive_queue) && |
| 128 | !need_resched() && !busy_loop_timeout(end_time)); | 128 | !need_resched() && !busy_loop_timeout(end_time)); |
| @@ -146,7 +146,7 @@ static inline void sk_mark_napi_id(struct sock *sk, struct sk_buff *skb) | |||
| 146 | sk->sk_napi_id = skb->napi_id; | 146 | sk->sk_napi_id = skb->napi_id; |
| 147 | } | 147 | } |
| 148 | 148 | ||
| 149 | #else /* CONFIG_NET_LL_RX_POLL */ | 149 | #else /* CONFIG_NET_RX_BUSY_POLL */ |
| 150 | static inline unsigned long net_busy_loop_on(void) | 150 | static inline unsigned long net_busy_loop_on(void) |
| 151 | { | 151 | { |
| 152 | return 0; | 152 | return 0; |
| @@ -162,11 +162,6 @@ static inline bool sk_can_busy_loop(struct sock *sk) | |||
| 162 | return false; | 162 | return false; |
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | static inline bool sk_busy_poll(struct sock *sk, int nonblock) | ||
| 166 | { | ||
| 167 | return false; | ||
| 168 | } | ||
| 169 | |||
| 170 | static inline void skb_mark_napi_id(struct sk_buff *skb, | 165 | static inline void skb_mark_napi_id(struct sk_buff *skb, |
| 171 | struct napi_struct *napi) | 166 | struct napi_struct *napi) |
| 172 | { | 167 | { |
| @@ -181,5 +176,10 @@ static inline bool busy_loop_timeout(unsigned long end_time) | |||
| 181 | return true; | 176 | return true; |
| 182 | } | 177 | } |
| 183 | 178 | ||
| 184 | #endif /* CONFIG_NET_LL_RX_POLL */ | 179 | static inline bool sk_busy_loop(struct sock *sk, int nonblock) |
| 180 | { | ||
| 181 | return false; | ||
| 182 | } | ||
| 183 | |||
| 184 | #endif /* CONFIG_NET_RX_BUSY_POLL */ | ||
| 185 | #endif /* _LINUX_NET_BUSY_POLL_H */ | 185 | #endif /* _LINUX_NET_BUSY_POLL_H */ |
diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h index 2a601e7da1bf..48ec25a7fcb6 100644 --- a/include/net/ip6_fib.h +++ b/include/net/ip6_fib.h | |||
| @@ -300,7 +300,7 @@ extern void inet6_rt_notify(int event, struct rt6_info *rt, | |||
| 300 | struct nl_info *info); | 300 | struct nl_info *info); |
| 301 | 301 | ||
| 302 | extern void fib6_run_gc(unsigned long expires, | 302 | extern void fib6_run_gc(unsigned long expires, |
| 303 | struct net *net); | 303 | struct net *net, bool force); |
| 304 | 304 | ||
| 305 | extern void fib6_gc_cleanup(void); | 305 | extern void fib6_gc_cleanup(void); |
| 306 | 306 | ||
diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h index 781b3cf86a2f..a354db5b7662 100644 --- a/include/net/ip_tunnels.h +++ b/include/net/ip_tunnels.h | |||
| @@ -145,20 +145,6 @@ static inline u8 ip_tunnel_ecn_encap(u8 tos, const struct iphdr *iph, | |||
| 145 | return INET_ECN_encapsulate(tos, inner); | 145 | return INET_ECN_encapsulate(tos, inner); |
| 146 | } | 146 | } |
| 147 | 147 | ||
| 148 | static inline void tunnel_ip_select_ident(struct sk_buff *skb, | ||
| 149 | const struct iphdr *old_iph, | ||
| 150 | struct dst_entry *dst) | ||
| 151 | { | ||
| 152 | struct iphdr *iph = ip_hdr(skb); | ||
| 153 | |||
| 154 | /* Use inner packet iph-id if possible. */ | ||
| 155 | if (skb->protocol == htons(ETH_P_IP) && old_iph->id) | ||
| 156 | iph->id = old_iph->id; | ||
| 157 | else | ||
| 158 | __ip_select_ident(iph, dst, | ||
| 159 | (skb_shinfo(skb)->gso_segs ?: 1) - 1); | ||
| 160 | } | ||
| 161 | |||
| 162 | int iptunnel_pull_header(struct sk_buff *skb, int hdr_len, __be16 inner_proto); | 148 | int iptunnel_pull_header(struct sk_buff *skb, int hdr_len, __be16 inner_proto); |
| 163 | int iptunnel_xmit(struct net *net, struct rtable *rt, | 149 | int iptunnel_xmit(struct net *net, struct rtable *rt, |
| 164 | struct sk_buff *skb, | 150 | struct sk_buff *skb, |
diff --git a/include/net/ndisc.h b/include/net/ndisc.h index 949d77528f2f..6fea32340ae8 100644 --- a/include/net/ndisc.h +++ b/include/net/ndisc.h | |||
| @@ -119,7 +119,7 @@ extern struct ndisc_options *ndisc_parse_options(u8 *opt, int opt_len, | |||
| 119 | * if RFC 3831 IPv6-over-Fibre Channel is ever implemented it may | 119 | * if RFC 3831 IPv6-over-Fibre Channel is ever implemented it may |
| 120 | * also need a pad of 2. | 120 | * also need a pad of 2. |
| 121 | */ | 121 | */ |
| 122 | static int ndisc_addr_option_pad(unsigned short type) | 122 | static inline int ndisc_addr_option_pad(unsigned short type) |
| 123 | { | 123 | { |
| 124 | switch (type) { | 124 | switch (type) { |
| 125 | case ARPHRD_INFINIBAND: return 2; | 125 | case ARPHRD_INFINIBAND: return 2; |
diff --git a/include/net/nfc/hci.h b/include/net/nfc/hci.h index 0af851c3b038..b64b7bce4b94 100644 --- a/include/net/nfc/hci.h +++ b/include/net/nfc/hci.h | |||
| @@ -59,7 +59,7 @@ struct nfc_hci_ops { | |||
| 59 | struct nfc_target *target); | 59 | struct nfc_target *target); |
| 60 | int (*event_received)(struct nfc_hci_dev *hdev, u8 gate, u8 event, | 60 | int (*event_received)(struct nfc_hci_dev *hdev, u8 gate, u8 event, |
| 61 | struct sk_buff *skb); | 61 | struct sk_buff *skb); |
| 62 | int (*fw_upload)(struct nfc_hci_dev *hdev, const char *firmware_name); | 62 | int (*fw_download)(struct nfc_hci_dev *hdev, const char *firmware_name); |
| 63 | int (*discover_se)(struct nfc_hci_dev *dev); | 63 | int (*discover_se)(struct nfc_hci_dev *dev); |
| 64 | int (*enable_se)(struct nfc_hci_dev *dev, u32 se_idx); | 64 | int (*enable_se)(struct nfc_hci_dev *dev, u32 se_idx); |
| 65 | int (*disable_se)(struct nfc_hci_dev *dev, u32 se_idx); | 65 | int (*disable_se)(struct nfc_hci_dev *dev, u32 se_idx); |
diff --git a/include/net/nfc/nfc.h b/include/net/nfc/nfc.h index 0e353f1658bb..5f286b726bb6 100644 --- a/include/net/nfc/nfc.h +++ b/include/net/nfc/nfc.h | |||
| @@ -68,7 +68,7 @@ struct nfc_ops { | |||
| 68 | void *cb_context); | 68 | void *cb_context); |
| 69 | int (*tm_send)(struct nfc_dev *dev, struct sk_buff *skb); | 69 | int (*tm_send)(struct nfc_dev *dev, struct sk_buff *skb); |
| 70 | int (*check_presence)(struct nfc_dev *dev, struct nfc_target *target); | 70 | int (*check_presence)(struct nfc_dev *dev, struct nfc_target *target); |
| 71 | int (*fw_upload)(struct nfc_dev *dev, const char *firmware_name); | 71 | int (*fw_download)(struct nfc_dev *dev, const char *firmware_name); |
| 72 | 72 | ||
| 73 | /* Secure Element API */ | 73 | /* Secure Element API */ |
| 74 | int (*discover_se)(struct nfc_dev *dev); | 74 | int (*discover_se)(struct nfc_dev *dev); |
| @@ -127,7 +127,7 @@ struct nfc_dev { | |||
| 127 | int targets_generation; | 127 | int targets_generation; |
| 128 | struct device dev; | 128 | struct device dev; |
| 129 | bool dev_up; | 129 | bool dev_up; |
| 130 | bool fw_upload_in_progress; | 130 | bool fw_download_in_progress; |
| 131 | u8 rf_mode; | 131 | u8 rf_mode; |
| 132 | bool polling; | 132 | bool polling; |
| 133 | struct nfc_target *active_target; | 133 | struct nfc_target *active_target; |
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index 6eab63363e59..e5ae0c50fa9c 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h | |||
| @@ -683,13 +683,19 @@ struct psched_ratecfg { | |||
| 683 | u64 rate_bytes_ps; /* bytes per second */ | 683 | u64 rate_bytes_ps; /* bytes per second */ |
| 684 | u32 mult; | 684 | u32 mult; |
| 685 | u16 overhead; | 685 | u16 overhead; |
| 686 | u8 linklayer; | ||
| 686 | u8 shift; | 687 | u8 shift; |
| 687 | }; | 688 | }; |
| 688 | 689 | ||
| 689 | static inline u64 psched_l2t_ns(const struct psched_ratecfg *r, | 690 | static inline u64 psched_l2t_ns(const struct psched_ratecfg *r, |
| 690 | unsigned int len) | 691 | unsigned int len) |
| 691 | { | 692 | { |
| 692 | return ((u64)(len + r->overhead) * r->mult) >> r->shift; | 693 | len += r->overhead; |
| 694 | |||
| 695 | if (unlikely(r->linklayer == TC_LINKLAYER_ATM)) | ||
| 696 | return ((u64)(DIV_ROUND_UP(len,48)*53) * r->mult) >> r->shift; | ||
| 697 | |||
| 698 | return ((u64)len * r->mult) >> r->shift; | ||
| 693 | } | 699 | } |
| 694 | 700 | ||
| 695 | extern void psched_ratecfg_precompute(struct psched_ratecfg *r, const struct tc_ratespec *conf); | 701 | extern void psched_ratecfg_precompute(struct psched_ratecfg *r, const struct tc_ratespec *conf); |
| @@ -700,6 +706,7 @@ static inline void psched_ratecfg_getrate(struct tc_ratespec *res, | |||
| 700 | memset(res, 0, sizeof(*res)); | 706 | memset(res, 0, sizeof(*res)); |
| 701 | res->rate = r->rate_bytes_ps; | 707 | res->rate = r->rate_bytes_ps; |
| 702 | res->overhead = r->overhead; | 708 | res->overhead = r->overhead; |
| 709 | res->linklayer = (r->linklayer & TC_LINKLAYER_MASK); | ||
| 703 | } | 710 | } |
| 704 | 711 | ||
| 705 | #endif | 712 | #endif |
diff --git a/include/net/sock.h b/include/net/sock.h index 95a5a2c6925a..31d5cfbb51ec 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
| @@ -327,7 +327,7 @@ struct sock { | |||
| 327 | #ifdef CONFIG_RPS | 327 | #ifdef CONFIG_RPS |
| 328 | __u32 sk_rxhash; | 328 | __u32 sk_rxhash; |
| 329 | #endif | 329 | #endif |
| 330 | #ifdef CONFIG_NET_LL_RX_POLL | 330 | #ifdef CONFIG_NET_RX_BUSY_POLL |
| 331 | unsigned int sk_napi_id; | 331 | unsigned int sk_napi_id; |
| 332 | unsigned int sk_ll_usec; | 332 | unsigned int sk_ll_usec; |
| 333 | #endif | 333 | #endif |
diff --git a/include/uapi/linux/firewire-cdev.h b/include/uapi/linux/firewire-cdev.h index d50036953497..1db453e4b550 100644 --- a/include/uapi/linux/firewire-cdev.h +++ b/include/uapi/linux/firewire-cdev.h | |||
| @@ -215,8 +215,8 @@ struct fw_cdev_event_request2 { | |||
| 215 | * with the %FW_CDEV_ISO_INTERRUPT bit set, when explicitly requested with | 215 | * with the %FW_CDEV_ISO_INTERRUPT bit set, when explicitly requested with |
| 216 | * %FW_CDEV_IOC_FLUSH_ISO, or when there have been so many completed packets | 216 | * %FW_CDEV_IOC_FLUSH_ISO, or when there have been so many completed packets |
| 217 | * without the interrupt bit set that the kernel's internal buffer for @header | 217 | * without the interrupt bit set that the kernel's internal buffer for @header |
| 218 | * is about to overflow. (In the last case, kernels with ABI version < 5 drop | 218 | * is about to overflow. (In the last case, ABI versions < 5 drop header data |
| 219 | * header data up to the next interrupt packet.) | 219 | * up to the next interrupt packet.) |
| 220 | * | 220 | * |
| 221 | * Isochronous transmit events (context type %FW_CDEV_ISO_CONTEXT_TRANSMIT): | 221 | * Isochronous transmit events (context type %FW_CDEV_ISO_CONTEXT_TRANSMIT): |
| 222 | * | 222 | * |
diff --git a/include/uapi/linux/nfc.h b/include/uapi/linux/nfc.h index caed0f324d5f..8137dd8d2adf 100644 --- a/include/uapi/linux/nfc.h +++ b/include/uapi/linux/nfc.h | |||
| @@ -69,8 +69,8 @@ | |||
| 69 | * starting a poll from a device which has a secure element enabled means | 69 | * starting a poll from a device which has a secure element enabled means |
| 70 | * we want to do SE based card emulation. | 70 | * we want to do SE based card emulation. |
| 71 | * @NFC_CMD_DISABLE_SE: Disable the physical link to a specific secure element. | 71 | * @NFC_CMD_DISABLE_SE: Disable the physical link to a specific secure element. |
| 72 | * @NFC_CMD_FW_UPLOAD: Request to Load/flash firmware, or event to inform that | 72 | * @NFC_CMD_FW_DOWNLOAD: Request to Load/flash firmware, or event to inform |
| 73 | * some firmware was loaded | 73 | * that some firmware was loaded |
| 74 | */ | 74 | */ |
| 75 | enum nfc_commands { | 75 | enum nfc_commands { |
| 76 | NFC_CMD_UNSPEC, | 76 | NFC_CMD_UNSPEC, |
| @@ -94,7 +94,7 @@ enum nfc_commands { | |||
| 94 | NFC_CMD_DISABLE_SE, | 94 | NFC_CMD_DISABLE_SE, |
| 95 | NFC_CMD_LLC_SDREQ, | 95 | NFC_CMD_LLC_SDREQ, |
| 96 | NFC_EVENT_LLC_SDRES, | 96 | NFC_EVENT_LLC_SDRES, |
| 97 | NFC_CMD_FW_UPLOAD, | 97 | NFC_CMD_FW_DOWNLOAD, |
| 98 | NFC_EVENT_SE_ADDED, | 98 | NFC_EVENT_SE_ADDED, |
| 99 | NFC_EVENT_SE_REMOVED, | 99 | NFC_EVENT_SE_REMOVED, |
| 100 | /* private: internal use only */ | 100 | /* private: internal use only */ |
diff --git a/include/uapi/linux/pkt_sched.h b/include/uapi/linux/pkt_sched.h index dbd71b0c7d8c..09d62b9228ff 100644 --- a/include/uapi/linux/pkt_sched.h +++ b/include/uapi/linux/pkt_sched.h | |||
| @@ -73,9 +73,17 @@ struct tc_estimator { | |||
| 73 | #define TC_H_ROOT (0xFFFFFFFFU) | 73 | #define TC_H_ROOT (0xFFFFFFFFU) |
| 74 | #define TC_H_INGRESS (0xFFFFFFF1U) | 74 | #define TC_H_INGRESS (0xFFFFFFF1U) |
| 75 | 75 | ||
| 76 | /* Need to corrospond to iproute2 tc/tc_core.h "enum link_layer" */ | ||
| 77 | enum tc_link_layer { | ||
| 78 | TC_LINKLAYER_UNAWARE, /* Indicate unaware old iproute2 util */ | ||
| 79 | TC_LINKLAYER_ETHERNET, | ||
| 80 | TC_LINKLAYER_ATM, | ||
| 81 | }; | ||
| 82 | #define TC_LINKLAYER_MASK 0x0F /* limit use to lower 4 bits */ | ||
| 83 | |||
| 76 | struct tc_ratespec { | 84 | struct tc_ratespec { |
| 77 | unsigned char cell_log; | 85 | unsigned char cell_log; |
| 78 | unsigned char __reserved; | 86 | __u8 linklayer; /* lower 4 bits */ |
| 79 | unsigned short overhead; | 87 | unsigned short overhead; |
| 80 | short cell_align; | 88 | short cell_align; |
| 81 | unsigned short mpu; | 89 | unsigned short mpu; |
diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h index af0a674cc677..a1356d3b54df 100644 --- a/include/uapi/linux/snmp.h +++ b/include/uapi/linux/snmp.h | |||
| @@ -253,7 +253,7 @@ enum | |||
| 253 | LINUX_MIB_TCPFASTOPENLISTENOVERFLOW, /* TCPFastOpenListenOverflow */ | 253 | LINUX_MIB_TCPFASTOPENLISTENOVERFLOW, /* TCPFastOpenListenOverflow */ |
| 254 | LINUX_MIB_TCPFASTOPENCOOKIEREQD, /* TCPFastOpenCookieReqd */ | 254 | LINUX_MIB_TCPFASTOPENCOOKIEREQD, /* TCPFastOpenCookieReqd */ |
| 255 | LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES, /* TCPSpuriousRtxHostQueues */ | 255 | LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES, /* TCPSpuriousRtxHostQueues */ |
| 256 | LINUX_MIB_LOWLATENCYRXPACKETS, /* LowLatencyRxPackets */ | 256 | LINUX_MIB_BUSYPOLLRXPACKETS, /* BusyPollRxPackets */ |
| 257 | __LINUX_MIB_MAX | 257 | __LINUX_MIB_MAX |
| 258 | }; | 258 | }; |
| 259 | 259 | ||
