diff options
| author | David S. Miller <davem@davemloft.net> | 2014-06-26 01:40:43 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2014-06-26 01:40:43 -0400 |
| commit | 9b8d90b963dcc6d3f3f6a616b3547ea1c8b03525 (patch) | |
| tree | bca8230897630ca6721bdd7b959142984afa256a /include | |
| parent | 644a918d20336a7deaa81f675c3c2f25bf3dafbb (diff) | |
| parent | d7933ab727ed035bdf420d7381b831ba959cecc5 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'include')
| -rw-r--r-- | include/acpi/processor.h | 10 | ||||
| -rw-r--r-- | include/drm/i915_powerwell.h | 4 | ||||
| -rw-r--r-- | include/dt-bindings/clock/imx6sl-clock.h | 3 | ||||
| -rw-r--r-- | include/dt-bindings/clock/stih415-clks.h | 1 | ||||
| -rw-r--r-- | include/dt-bindings/clock/stih416-clks.h | 1 | ||||
| -rw-r--r-- | include/linux/blk-mq.h | 2 | ||||
| -rw-r--r-- | include/linux/blkdev.h | 2 | ||||
| -rw-r--r-- | include/linux/elevator.h | 1 | ||||
| -rw-r--r-- | include/linux/fs.h | 6 | ||||
| -rw-r--r-- | include/linux/nmi.h | 12 | ||||
| -rw-r--r-- | include/linux/page-flags.h | 3 | ||||
| -rw-r--r-- | include/linux/phy.h | 9 | ||||
| -rw-r--r-- | include/linux/profile.h | 1 | ||||
| -rw-r--r-- | include/linux/regulator/consumer.h | 5 | ||||
| -rw-r--r-- | include/linux/suspend.h | 2 | ||||
| -rw-r--r-- | include/net/netfilter/nf_tables.h | 6 | ||||
| -rw-r--r-- | include/net/sock.h | 4 | ||||
| -rw-r--r-- | include/sound/core.h | 2 | ||||
| -rw-r--r-- | include/trace/ftrace.h | 33 | ||||
| -rw-r--r-- | include/trace/syscall.h | 15 | ||||
| -rw-r--r-- | include/uapi/linux/perf_event.h | 1 |
21 files changed, 106 insertions, 17 deletions
diff --git a/include/acpi/processor.h b/include/acpi/processor.h index 6eb1d3cb5104..9b9b6f29bbf3 100644 --- a/include/acpi/processor.h +++ b/include/acpi/processor.h | |||
| @@ -53,7 +53,7 @@ struct acpi_power_register { | |||
| 53 | u8 bit_offset; | 53 | u8 bit_offset; |
| 54 | u8 access_size; | 54 | u8 access_size; |
| 55 | u64 address; | 55 | u64 address; |
| 56 | } __attribute__ ((packed)); | 56 | } __packed; |
| 57 | 57 | ||
| 58 | struct acpi_processor_cx { | 58 | struct acpi_processor_cx { |
| 59 | u8 valid; | 59 | u8 valid; |
| @@ -83,7 +83,7 @@ struct acpi_psd_package { | |||
| 83 | u64 domain; | 83 | u64 domain; |
| 84 | u64 coord_type; | 84 | u64 coord_type; |
| 85 | u64 num_processors; | 85 | u64 num_processors; |
| 86 | } __attribute__ ((packed)); | 86 | } __packed; |
| 87 | 87 | ||
| 88 | struct acpi_pct_register { | 88 | struct acpi_pct_register { |
| 89 | u8 descriptor; | 89 | u8 descriptor; |
| @@ -93,7 +93,7 @@ struct acpi_pct_register { | |||
| 93 | u8 bit_offset; | 93 | u8 bit_offset; |
| 94 | u8 reserved; | 94 | u8 reserved; |
| 95 | u64 address; | 95 | u64 address; |
| 96 | } __attribute__ ((packed)); | 96 | } __packed; |
| 97 | 97 | ||
| 98 | struct acpi_processor_px { | 98 | struct acpi_processor_px { |
| 99 | u64 core_frequency; /* megahertz */ | 99 | u64 core_frequency; /* megahertz */ |
| @@ -124,7 +124,7 @@ struct acpi_tsd_package { | |||
| 124 | u64 domain; | 124 | u64 domain; |
| 125 | u64 coord_type; | 125 | u64 coord_type; |
| 126 | u64 num_processors; | 126 | u64 num_processors; |
| 127 | } __attribute__ ((packed)); | 127 | } __packed; |
| 128 | 128 | ||
| 129 | struct acpi_ptc_register { | 129 | struct acpi_ptc_register { |
| 130 | u8 descriptor; | 130 | u8 descriptor; |
| @@ -134,7 +134,7 @@ struct acpi_ptc_register { | |||
| 134 | u8 bit_offset; | 134 | u8 bit_offset; |
| 135 | u8 reserved; | 135 | u8 reserved; |
| 136 | u64 address; | 136 | u64 address; |
| 137 | } __attribute__ ((packed)); | 137 | } __packed; |
| 138 | 138 | ||
| 139 | struct acpi_processor_tx_tss { | 139 | struct acpi_processor_tx_tss { |
| 140 | u64 freqpercentage; /* */ | 140 | u64 freqpercentage; /* */ |
diff --git a/include/drm/i915_powerwell.h b/include/drm/i915_powerwell.h index cfdc884405b7..2baba9996094 100644 --- a/include/drm/i915_powerwell.h +++ b/include/drm/i915_powerwell.h | |||
| @@ -30,7 +30,7 @@ | |||
| 30 | #define _I915_POWERWELL_H_ | 30 | #define _I915_POWERWELL_H_ |
| 31 | 31 | ||
| 32 | /* For use by hda_i915 driver */ | 32 | /* For use by hda_i915 driver */ |
| 33 | extern void i915_request_power_well(void); | 33 | extern int i915_request_power_well(void); |
| 34 | extern void i915_release_power_well(void); | 34 | extern int i915_release_power_well(void); |
| 35 | 35 | ||
| 36 | #endif /* _I915_POWERWELL_H_ */ | 36 | #endif /* _I915_POWERWELL_H_ */ |
diff --git a/include/dt-bindings/clock/imx6sl-clock.h b/include/dt-bindings/clock/imx6sl-clock.h index 7cf5c9969336..b91dd462ba85 100644 --- a/include/dt-bindings/clock/imx6sl-clock.h +++ b/include/dt-bindings/clock/imx6sl-clock.h | |||
| @@ -145,6 +145,7 @@ | |||
| 145 | #define IMX6SL_CLK_USDHC4 132 | 145 | #define IMX6SL_CLK_USDHC4 132 |
| 146 | #define IMX6SL_CLK_PLL4_AUDIO_DIV 133 | 146 | #define IMX6SL_CLK_PLL4_AUDIO_DIV 133 |
| 147 | #define IMX6SL_CLK_SPBA 134 | 147 | #define IMX6SL_CLK_SPBA 134 |
| 148 | #define IMX6SL_CLK_END 135 | 148 | #define IMX6SL_CLK_ENET 135 |
| 149 | #define IMX6SL_CLK_END 136 | ||
| 149 | 150 | ||
| 150 | #endif /* __DT_BINDINGS_CLOCK_IMX6SL_H */ | 151 | #endif /* __DT_BINDINGS_CLOCK_IMX6SL_H */ |
diff --git a/include/dt-bindings/clock/stih415-clks.h b/include/dt-bindings/clock/stih415-clks.h index 0d2c7397e028..d80caa68aebd 100644 --- a/include/dt-bindings/clock/stih415-clks.h +++ b/include/dt-bindings/clock/stih415-clks.h | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #define CLK_ETH1_PHY 4 | 10 | #define CLK_ETH1_PHY 4 |
| 11 | 11 | ||
| 12 | /* CLOCKGEN A1 */ | 12 | /* CLOCKGEN A1 */ |
| 13 | #define CLK_ICN_IF_2 0 | ||
| 13 | #define CLK_GMAC0_PHY 3 | 14 | #define CLK_GMAC0_PHY 3 |
| 14 | 15 | ||
| 15 | #endif | 16 | #endif |
diff --git a/include/dt-bindings/clock/stih416-clks.h b/include/dt-bindings/clock/stih416-clks.h index 552c779eb6af..f9bdbd13568d 100644 --- a/include/dt-bindings/clock/stih416-clks.h +++ b/include/dt-bindings/clock/stih416-clks.h | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #define CLK_ETH1_PHY 4 | 10 | #define CLK_ETH1_PHY 4 |
| 11 | 11 | ||
| 12 | /* CLOCKGEN A1 */ | 12 | /* CLOCKGEN A1 */ |
| 13 | #define CLK_ICN_IF_2 0 | ||
| 13 | #define CLK_GMAC0_PHY 3 | 14 | #define CLK_GMAC0_PHY 3 |
| 14 | 15 | ||
| 15 | #endif | 16 | #endif |
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h index a002cf191427..eb726b9c5762 100644 --- a/include/linux/blk-mq.h +++ b/include/linux/blk-mq.h | |||
| @@ -42,7 +42,7 @@ struct blk_mq_hw_ctx { | |||
| 42 | unsigned int nr_ctx; | 42 | unsigned int nr_ctx; |
| 43 | struct blk_mq_ctx **ctxs; | 43 | struct blk_mq_ctx **ctxs; |
| 44 | 44 | ||
| 45 | unsigned int wait_index; | 45 | atomic_t wait_index; |
| 46 | 46 | ||
| 47 | struct blk_mq_tags *tags; | 47 | struct blk_mq_tags *tags; |
| 48 | 48 | ||
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 31e11051f1ba..713f8b62b435 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -920,7 +920,7 @@ static inline unsigned int blk_max_size_offset(struct request_queue *q, | |||
| 920 | sector_t offset) | 920 | sector_t offset) |
| 921 | { | 921 | { |
| 922 | if (!q->limits.chunk_sectors) | 922 | if (!q->limits.chunk_sectors) |
| 923 | return q->limits.max_hw_sectors; | 923 | return q->limits.max_sectors; |
| 924 | 924 | ||
| 925 | return q->limits.chunk_sectors - | 925 | return q->limits.chunk_sectors - |
| 926 | (offset & (q->limits.chunk_sectors - 1)); | 926 | (offset & (q->limits.chunk_sectors - 1)); |
diff --git a/include/linux/elevator.h b/include/linux/elevator.h index 4ff262e2bf37..e2a6bd7fb133 100644 --- a/include/linux/elevator.h +++ b/include/linux/elevator.h | |||
| @@ -133,7 +133,6 @@ extern struct request *elv_latter_request(struct request_queue *, struct request | |||
| 133 | extern int elv_register_queue(struct request_queue *q); | 133 | extern int elv_register_queue(struct request_queue *q); |
| 134 | extern void elv_unregister_queue(struct request_queue *q); | 134 | extern void elv_unregister_queue(struct request_queue *q); |
| 135 | extern int elv_may_queue(struct request_queue *, int); | 135 | extern int elv_may_queue(struct request_queue *, int); |
| 136 | extern void elv_abort_queue(struct request_queue *); | ||
| 137 | extern void elv_completed_request(struct request_queue *, struct request *); | 136 | extern void elv_completed_request(struct request_queue *, struct request *); |
| 138 | extern int elv_set_request(struct request_queue *q, struct request *rq, | 137 | extern int elv_set_request(struct request_queue *q, struct request *rq, |
| 139 | struct bio *bio, gfp_t gfp_mask); | 138 | struct bio *bio, gfp_t gfp_mask); |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 338e6f758c6d..e11d60cc867b 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -1921,6 +1921,12 @@ static inline int break_lease(struct inode *inode, unsigned int mode) | |||
| 1921 | 1921 | ||
| 1922 | static inline int break_deleg(struct inode *inode, unsigned int mode) | 1922 | static inline int break_deleg(struct inode *inode, unsigned int mode) |
| 1923 | { | 1923 | { |
| 1924 | /* | ||
| 1925 | * Since this check is lockless, we must ensure that any refcounts | ||
| 1926 | * taken are done before checking inode->i_flock. Otherwise, we could | ||
| 1927 | * end up racing with tasks trying to set a new lease on this file. | ||
| 1928 | */ | ||
| 1929 | smp_mb(); | ||
| 1924 | if (inode->i_flock) | 1930 | if (inode->i_flock) |
| 1925 | return __break_lease(inode, mode, FL_DELEG); | 1931 | return __break_lease(inode, mode, FL_DELEG); |
| 1926 | return 0; | 1932 | return 0; |
diff --git a/include/linux/nmi.h b/include/linux/nmi.h index 6a45fb583ff1..447775ee2c4b 100644 --- a/include/linux/nmi.h +++ b/include/linux/nmi.h | |||
| @@ -32,15 +32,24 @@ static inline void touch_nmi_watchdog(void) | |||
| 32 | #ifdef arch_trigger_all_cpu_backtrace | 32 | #ifdef arch_trigger_all_cpu_backtrace |
| 33 | static inline bool trigger_all_cpu_backtrace(void) | 33 | static inline bool trigger_all_cpu_backtrace(void) |
| 34 | { | 34 | { |
| 35 | arch_trigger_all_cpu_backtrace(); | 35 | arch_trigger_all_cpu_backtrace(true); |
| 36 | 36 | ||
| 37 | return true; | 37 | return true; |
| 38 | } | 38 | } |
| 39 | static inline bool trigger_allbutself_cpu_backtrace(void) | ||
| 40 | { | ||
| 41 | arch_trigger_all_cpu_backtrace(false); | ||
| 42 | return true; | ||
| 43 | } | ||
| 39 | #else | 44 | #else |
| 40 | static inline bool trigger_all_cpu_backtrace(void) | 45 | static inline bool trigger_all_cpu_backtrace(void) |
| 41 | { | 46 | { |
| 42 | return false; | 47 | return false; |
| 43 | } | 48 | } |
| 49 | static inline bool trigger_allbutself_cpu_backtrace(void) | ||
| 50 | { | ||
| 51 | return false; | ||
| 52 | } | ||
| 44 | #endif | 53 | #endif |
| 45 | 54 | ||
| 46 | #ifdef CONFIG_LOCKUP_DETECTOR | 55 | #ifdef CONFIG_LOCKUP_DETECTOR |
| @@ -48,6 +57,7 @@ int hw_nmi_is_cpu_stuck(struct pt_regs *); | |||
| 48 | u64 hw_nmi_get_sample_period(int watchdog_thresh); | 57 | u64 hw_nmi_get_sample_period(int watchdog_thresh); |
| 49 | extern int watchdog_user_enabled; | 58 | extern int watchdog_user_enabled; |
| 50 | extern int watchdog_thresh; | 59 | extern int watchdog_thresh; |
| 60 | extern int sysctl_softlockup_all_cpu_backtrace; | ||
| 51 | struct ctl_table; | 61 | struct ctl_table; |
| 52 | extern int proc_dowatchdog(struct ctl_table *, int , | 62 | extern int proc_dowatchdog(struct ctl_table *, int , |
| 53 | void __user *, size_t *, loff_t *); | 63 | void __user *, size_t *, loff_t *); |
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 3c545b48aeab..8304959ad336 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h | |||
| @@ -360,6 +360,9 @@ static inline void ClearPageCompound(struct page *page) | |||
| 360 | ClearPageHead(page); | 360 | ClearPageHead(page); |
| 361 | } | 361 | } |
| 362 | #endif | 362 | #endif |
| 363 | |||
| 364 | #define PG_head_mask ((1L << PG_head)) | ||
| 365 | |||
| 363 | #else | 366 | #else |
| 364 | /* | 367 | /* |
| 365 | * Reduce page flag use as much as possible by overlapping | 368 | * Reduce page flag use as much as possible by overlapping |
diff --git a/include/linux/phy.h b/include/linux/phy.h index 864ddafad8cc..68041446c450 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h | |||
| @@ -536,6 +536,15 @@ struct phy_driver { | |||
| 536 | /* See set_wol, but for checking whether Wake on LAN is enabled. */ | 536 | /* See set_wol, but for checking whether Wake on LAN is enabled. */ |
| 537 | void (*get_wol)(struct phy_device *dev, struct ethtool_wolinfo *wol); | 537 | void (*get_wol)(struct phy_device *dev, struct ethtool_wolinfo *wol); |
| 538 | 538 | ||
| 539 | /* | ||
| 540 | * Called to inform a PHY device driver when the core is about to | ||
| 541 | * change the link state. This callback is supposed to be used as | ||
| 542 | * fixup hook for drivers that need to take action when the link | ||
| 543 | * state changes. Drivers are by no means allowed to mess with the | ||
| 544 | * PHY device structure in their implementations. | ||
| 545 | */ | ||
| 546 | void (*link_change_notify)(struct phy_device *dev); | ||
| 547 | |||
| 539 | struct device_driver driver; | 548 | struct device_driver driver; |
| 540 | }; | 549 | }; |
| 541 | #define to_phy_driver(d) container_of(d, struct phy_driver, driver) | 550 | #define to_phy_driver(d) container_of(d, struct phy_driver, driver) |
diff --git a/include/linux/profile.h b/include/linux/profile.h index aaad3861beb8..b537a25ffa17 100644 --- a/include/linux/profile.h +++ b/include/linux/profile.h | |||
| @@ -44,6 +44,7 @@ extern int prof_on __read_mostly; | |||
| 44 | int profile_init(void); | 44 | int profile_init(void); |
| 45 | int profile_setup(char *str); | 45 | int profile_setup(char *str); |
| 46 | void profile_tick(int type); | 46 | void profile_tick(int type); |
| 47 | int setup_profiling_timer(unsigned int multiplier); | ||
| 47 | 48 | ||
| 48 | /* | 49 | /* |
| 49 | * Add multiple profiler hits to a given address: | 50 | * Add multiple profiler hits to a given address: |
diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h index a2d9d81038d1..14ec18d5e18b 100644 --- a/include/linux/regulator/consumer.h +++ b/include/linux/regulator/consumer.h | |||
| @@ -395,6 +395,11 @@ static inline void regulator_bulk_free(int num_consumers, | |||
| 395 | { | 395 | { |
| 396 | } | 396 | } |
| 397 | 397 | ||
| 398 | static inline int regulator_can_change_voltage(struct regulator *regulator) | ||
| 399 | { | ||
| 400 | return 0; | ||
| 401 | } | ||
| 402 | |||
| 398 | static inline int regulator_set_voltage(struct regulator *regulator, | 403 | static inline int regulator_set_voltage(struct regulator *regulator, |
| 399 | int min_uV, int max_uV) | 404 | int min_uV, int max_uV) |
| 400 | { | 405 | { |
diff --git a/include/linux/suspend.h b/include/linux/suspend.h index f76994b9396c..519064e0c943 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h | |||
| @@ -327,6 +327,7 @@ extern unsigned long get_safe_page(gfp_t gfp_mask); | |||
| 327 | extern void hibernation_set_ops(const struct platform_hibernation_ops *ops); | 327 | extern void hibernation_set_ops(const struct platform_hibernation_ops *ops); |
| 328 | extern int hibernate(void); | 328 | extern int hibernate(void); |
| 329 | extern bool system_entering_hibernation(void); | 329 | extern bool system_entering_hibernation(void); |
| 330 | extern bool hibernation_available(void); | ||
| 330 | asmlinkage int swsusp_save(void); | 331 | asmlinkage int swsusp_save(void); |
| 331 | extern struct pbe *restore_pblist; | 332 | extern struct pbe *restore_pblist; |
| 332 | #else /* CONFIG_HIBERNATION */ | 333 | #else /* CONFIG_HIBERNATION */ |
| @@ -339,6 +340,7 @@ static inline void swsusp_unset_page_free(struct page *p) {} | |||
| 339 | static inline void hibernation_set_ops(const struct platform_hibernation_ops *ops) {} | 340 | static inline void hibernation_set_ops(const struct platform_hibernation_ops *ops) {} |
| 340 | static inline int hibernate(void) { return -ENOSYS; } | 341 | static inline int hibernate(void) { return -ENOSYS; } |
| 341 | static inline bool system_entering_hibernation(void) { return false; } | 342 | static inline bool system_entering_hibernation(void) { return false; } |
| 343 | static inline bool hibernation_available(void) { return false; } | ||
| 342 | #endif /* CONFIG_HIBERNATION */ | 344 | #endif /* CONFIG_HIBERNATION */ |
| 343 | 345 | ||
| 344 | /* Hibernation and suspend events */ | 346 | /* Hibernation and suspend events */ |
diff --git a/include/net/netfilter/nf_tables.h b/include/net/netfilter/nf_tables.h index 7ee6ce6564ae..713b0b88bd5a 100644 --- a/include/net/netfilter/nf_tables.h +++ b/include/net/netfilter/nf_tables.h | |||
| @@ -503,9 +503,9 @@ enum nft_chain_flags { | |||
| 503 | * @net: net namespace that this chain belongs to | 503 | * @net: net namespace that this chain belongs to |
| 504 | * @table: table that this chain belongs to | 504 | * @table: table that this chain belongs to |
| 505 | * @handle: chain handle | 505 | * @handle: chain handle |
| 506 | * @flags: bitmask of enum nft_chain_flags | ||
| 507 | * @use: number of jump references to this chain | 506 | * @use: number of jump references to this chain |
| 508 | * @level: length of longest path to this chain | 507 | * @level: length of longest path to this chain |
| 508 | * @flags: bitmask of enum nft_chain_flags | ||
| 509 | * @name: name of the chain | 509 | * @name: name of the chain |
| 510 | */ | 510 | */ |
| 511 | struct nft_chain { | 511 | struct nft_chain { |
| @@ -514,9 +514,9 @@ struct nft_chain { | |||
| 514 | struct net *net; | 514 | struct net *net; |
| 515 | struct nft_table *table; | 515 | struct nft_table *table; |
| 516 | u64 handle; | 516 | u64 handle; |
| 517 | u8 flags; | 517 | u32 use; |
| 518 | u16 use; | ||
| 519 | u16 level; | 518 | u16 level; |
| 519 | u8 flags; | ||
| 520 | char name[NFT_CHAIN_MAXNAMELEN]; | 520 | char name[NFT_CHAIN_MAXNAMELEN]; |
| 521 | }; | 521 | }; |
| 522 | 522 | ||
diff --git a/include/net/sock.h b/include/net/sock.h index 07b7fcd60d80..173cae485de1 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
| @@ -1730,8 +1730,8 @@ sk_dst_get(struct sock *sk) | |||
| 1730 | 1730 | ||
| 1731 | rcu_read_lock(); | 1731 | rcu_read_lock(); |
| 1732 | dst = rcu_dereference(sk->sk_dst_cache); | 1732 | dst = rcu_dereference(sk->sk_dst_cache); |
| 1733 | if (dst) | 1733 | if (dst && !atomic_inc_not_zero(&dst->__refcnt)) |
| 1734 | dst_hold(dst); | 1734 | dst = NULL; |
| 1735 | rcu_read_unlock(); | 1735 | rcu_read_unlock(); |
| 1736 | return dst; | 1736 | return dst; |
| 1737 | } | 1737 | } |
diff --git a/include/sound/core.h b/include/sound/core.h index eedda2cdfe57..1df3f2fe5350 100644 --- a/include/sound/core.h +++ b/include/sound/core.h | |||
| @@ -116,6 +116,8 @@ struct snd_card { | |||
| 116 | int user_ctl_count; /* count of all user controls */ | 116 | int user_ctl_count; /* count of all user controls */ |
| 117 | struct list_head controls; /* all controls for this card */ | 117 | struct list_head controls; /* all controls for this card */ |
| 118 | struct list_head ctl_files; /* active control files */ | 118 | struct list_head ctl_files; /* active control files */ |
| 119 | struct mutex user_ctl_lock; /* protects user controls against | ||
| 120 | concurrent access */ | ||
| 119 | 121 | ||
| 120 | struct snd_info_entry *proc_root; /* root for soundcard specific files */ | 122 | struct snd_info_entry *proc_root; /* root for soundcard specific files */ |
| 121 | struct snd_info_entry *proc_id; /* the card id */ | 123 | struct snd_info_entry *proc_id; /* the card id */ |
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index 0fd06fef9fac..26b4f2e13275 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h | |||
| @@ -44,6 +44,12 @@ | |||
| 44 | #undef __field_ext | 44 | #undef __field_ext |
| 45 | #define __field_ext(type, item, filter_type) type item; | 45 | #define __field_ext(type, item, filter_type) type item; |
| 46 | 46 | ||
| 47 | #undef __field_struct | ||
| 48 | #define __field_struct(type, item) type item; | ||
| 49 | |||
| 50 | #undef __field_struct_ext | ||
| 51 | #define __field_struct_ext(type, item, filter_type) type item; | ||
| 52 | |||
| 47 | #undef __array | 53 | #undef __array |
| 48 | #define __array(type, item, len) type item[len]; | 54 | #define __array(type, item, len) type item[len]; |
| 49 | 55 | ||
| @@ -122,6 +128,12 @@ | |||
| 122 | #undef __field_ext | 128 | #undef __field_ext |
| 123 | #define __field_ext(type, item, filter_type) | 129 | #define __field_ext(type, item, filter_type) |
| 124 | 130 | ||
| 131 | #undef __field_struct | ||
| 132 | #define __field_struct(type, item) | ||
| 133 | |||
| 134 | #undef __field_struct_ext | ||
| 135 | #define __field_struct_ext(type, item, filter_type) | ||
| 136 | |||
| 125 | #undef __array | 137 | #undef __array |
| 126 | #define __array(type, item, len) | 138 | #define __array(type, item, len) |
| 127 | 139 | ||
| @@ -315,9 +327,21 @@ static struct trace_event_functions ftrace_event_type_funcs_##call = { \ | |||
| 315 | if (ret) \ | 327 | if (ret) \ |
| 316 | return ret; | 328 | return ret; |
| 317 | 329 | ||
| 330 | #undef __field_struct_ext | ||
| 331 | #define __field_struct_ext(type, item, filter_type) \ | ||
| 332 | ret = trace_define_field(event_call, #type, #item, \ | ||
| 333 | offsetof(typeof(field), item), \ | ||
| 334 | sizeof(field.item), \ | ||
| 335 | 0, filter_type); \ | ||
| 336 | if (ret) \ | ||
| 337 | return ret; | ||
| 338 | |||
| 318 | #undef __field | 339 | #undef __field |
| 319 | #define __field(type, item) __field_ext(type, item, FILTER_OTHER) | 340 | #define __field(type, item) __field_ext(type, item, FILTER_OTHER) |
| 320 | 341 | ||
| 342 | #undef __field_struct | ||
| 343 | #define __field_struct(type, item) __field_struct_ext(type, item, FILTER_OTHER) | ||
| 344 | |||
| 321 | #undef __array | 345 | #undef __array |
| 322 | #define __array(type, item, len) \ | 346 | #define __array(type, item, len) \ |
| 323 | do { \ | 347 | do { \ |
| @@ -379,6 +403,12 @@ ftrace_define_fields_##call(struct ftrace_event_call *event_call) \ | |||
| 379 | #undef __field_ext | 403 | #undef __field_ext |
| 380 | #define __field_ext(type, item, filter_type) | 404 | #define __field_ext(type, item, filter_type) |
| 381 | 405 | ||
| 406 | #undef __field_struct | ||
| 407 | #define __field_struct(type, item) | ||
| 408 | |||
| 409 | #undef __field_struct_ext | ||
| 410 | #define __field_struct_ext(type, item, filter_type) | ||
| 411 | |||
| 382 | #undef __array | 412 | #undef __array |
| 383 | #define __array(type, item, len) | 413 | #define __array(type, item, len) |
| 384 | 414 | ||
| @@ -550,6 +580,9 @@ static inline notrace int ftrace_get_offsets_##call( \ | |||
| 550 | #undef __field | 580 | #undef __field |
| 551 | #define __field(type, item) | 581 | #define __field(type, item) |
| 552 | 582 | ||
| 583 | #undef __field_struct | ||
| 584 | #define __field_struct(type, item) | ||
| 585 | |||
| 553 | #undef __array | 586 | #undef __array |
| 554 | #define __array(type, item, len) | 587 | #define __array(type, item, len) |
| 555 | 588 | ||
diff --git a/include/trace/syscall.h b/include/trace/syscall.h index fed853f3d7aa..9674145e2f6a 100644 --- a/include/trace/syscall.h +++ b/include/trace/syscall.h | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | #include <linux/tracepoint.h> | 4 | #include <linux/tracepoint.h> |
| 5 | #include <linux/unistd.h> | 5 | #include <linux/unistd.h> |
| 6 | #include <linux/ftrace_event.h> | 6 | #include <linux/ftrace_event.h> |
| 7 | #include <linux/thread_info.h> | ||
| 7 | 8 | ||
| 8 | #include <asm/ptrace.h> | 9 | #include <asm/ptrace.h> |
| 9 | 10 | ||
| @@ -32,4 +33,18 @@ struct syscall_metadata { | |||
| 32 | struct ftrace_event_call *exit_event; | 33 | struct ftrace_event_call *exit_event; |
| 33 | }; | 34 | }; |
| 34 | 35 | ||
| 36 | #if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_HAVE_SYSCALL_TRACEPOINTS) | ||
| 37 | static inline void syscall_tracepoint_update(struct task_struct *p) | ||
| 38 | { | ||
| 39 | if (test_thread_flag(TIF_SYSCALL_TRACEPOINT)) | ||
| 40 | set_tsk_thread_flag(p, TIF_SYSCALL_TRACEPOINT); | ||
| 41 | else | ||
| 42 | clear_tsk_thread_flag(p, TIF_SYSCALL_TRACEPOINT); | ||
| 43 | } | ||
| 44 | #else | ||
| 45 | static inline void syscall_tracepoint_update(struct task_struct *p) | ||
| 46 | { | ||
| 47 | } | ||
| 48 | #endif | ||
| 49 | |||
| 35 | #endif /* _TRACE_SYSCALL_H */ | 50 | #endif /* _TRACE_SYSCALL_H */ |
diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h index 5312fae47218..9269de254874 100644 --- a/include/uapi/linux/perf_event.h +++ b/include/uapi/linux/perf_event.h | |||
| @@ -705,6 +705,7 @@ enum perf_event_type { | |||
| 705 | * u32 min; | 705 | * u32 min; |
| 706 | * u64 ino; | 706 | * u64 ino; |
| 707 | * u64 ino_generation; | 707 | * u64 ino_generation; |
| 708 | * u32 prot, flags; | ||
| 708 | * char filename[]; | 709 | * char filename[]; |
| 709 | * struct sample_id sample_id; | 710 | * struct sample_id sample_id; |
| 710 | * }; | 711 | * }; |
