diff options
Diffstat (limited to 'include')
42 files changed, 292 insertions, 143 deletions
diff --git a/include/asm-generic/fcntl.h b/include/asm-generic/fcntl.h index 0c3dd860392..cd2d7896e34 100644 --- a/include/asm-generic/fcntl.h +++ b/include/asm-generic/fcntl.h | |||
@@ -73,9 +73,18 @@ | |||
73 | #define F_SETSIG 10 /* for sockets. */ | 73 | #define F_SETSIG 10 /* for sockets. */ |
74 | #define F_GETSIG 11 /* for sockets. */ | 74 | #define F_GETSIG 11 /* for sockets. */ |
75 | #endif | 75 | #endif |
76 | |||
77 | #ifndef CONFIG_64BIT | ||
78 | #ifndef F_GETLK64 | ||
79 | #define F_GETLK64 12 /* using 'struct flock64' */ | ||
80 | #define F_SETLK64 13 | ||
81 | #define F_SETLKW64 14 | ||
82 | #endif | ||
83 | #endif | ||
84 | |||
76 | #ifndef F_SETOWN_EX | 85 | #ifndef F_SETOWN_EX |
77 | #define F_SETOWN_EX 12 | 86 | #define F_SETOWN_EX 15 |
78 | #define F_GETOWN_EX 13 | 87 | #define F_GETOWN_EX 16 |
79 | #endif | 88 | #endif |
80 | 89 | ||
81 | #define F_OWNER_TID 0 | 90 | #define F_OWNER_TID 0 |
@@ -139,12 +148,6 @@ struct flock { | |||
139 | 148 | ||
140 | #ifndef CONFIG_64BIT | 149 | #ifndef CONFIG_64BIT |
141 | 150 | ||
142 | #ifndef F_GETLK64 | ||
143 | #define F_GETLK64 12 /* using 'struct flock64' */ | ||
144 | #define F_SETLK64 13 | ||
145 | #define F_SETLKW64 14 | ||
146 | #endif | ||
147 | |||
148 | #ifndef HAVE_ARCH_STRUCT_FLOCK64 | 151 | #ifndef HAVE_ARCH_STRUCT_FLOCK64 |
149 | #ifndef __ARCH_FLOCK64_PAD | 152 | #ifndef __ARCH_FLOCK64_PAD |
150 | #define __ARCH_FLOCK64_PAD | 153 | #define __ARCH_FLOCK64_PAD |
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index 3f384d4b163..1feed71551c 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
@@ -364,6 +364,7 @@ unifdef-y += utsname.h | |||
364 | unifdef-y += videodev2.h | 364 | unifdef-y += videodev2.h |
365 | unifdef-y += videodev.h | 365 | unifdef-y += videodev.h |
366 | unifdef-y += virtio_config.h | 366 | unifdef-y += virtio_config.h |
367 | unifdef-y += virtio_ids.h | ||
367 | unifdef-y += virtio_blk.h | 368 | unifdef-y += virtio_blk.h |
368 | unifdef-y += virtio_net.h | 369 | unifdef-y += virtio_net.h |
369 | unifdef-y += virtio_9p.h | 370 | unifdef-y += virtio_9p.h |
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h index 44717eb4763..79a2340d83c 100644 --- a/include/linux/cpufreq.h +++ b/include/linux/cpufreq.h | |||
@@ -291,8 +291,15 @@ struct global_attr { | |||
291 | int cpufreq_get_policy(struct cpufreq_policy *policy, unsigned int cpu); | 291 | int cpufreq_get_policy(struct cpufreq_policy *policy, unsigned int cpu); |
292 | int cpufreq_update_policy(unsigned int cpu); | 292 | int cpufreq_update_policy(unsigned int cpu); |
293 | 293 | ||
294 | #ifdef CONFIG_CPU_FREQ | ||
294 | /* query the current CPU frequency (in kHz). If zero, cpufreq couldn't detect it */ | 295 | /* query the current CPU frequency (in kHz). If zero, cpufreq couldn't detect it */ |
295 | unsigned int cpufreq_get(unsigned int cpu); | 296 | unsigned int cpufreq_get(unsigned int cpu); |
297 | #else | ||
298 | static inline unsigned int cpufreq_get(unsigned int cpu) | ||
299 | { | ||
300 | return 0; | ||
301 | } | ||
302 | #endif | ||
296 | 303 | ||
297 | /* query the last known CPU freq (in kHz). If zero, cpufreq couldn't detect it */ | 304 | /* query the last known CPU freq (in kHz). If zero, cpufreq couldn't detect it */ |
298 | #ifdef CONFIG_CPU_FREQ | 305 | #ifdef CONFIG_CPU_FREQ |
diff --git a/include/linux/device.h b/include/linux/device.h index aca31bf7d8e..2ea3e492181 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -124,7 +124,9 @@ struct device_driver { | |||
124 | struct bus_type *bus; | 124 | struct bus_type *bus; |
125 | 125 | ||
126 | struct module *owner; | 126 | struct module *owner; |
127 | const char *mod_name; /* used for built-in modules */ | 127 | const char *mod_name; /* used for built-in modules */ |
128 | |||
129 | bool suppress_bind_attrs; /* disables bind/unbind via sysfs */ | ||
128 | 130 | ||
129 | int (*probe) (struct device *dev); | 131 | int (*probe) (struct device *dev); |
130 | int (*remove) (struct device *dev); | 132 | int (*remove) (struct device *dev); |
diff --git a/include/linux/ext3_fs_i.h b/include/linux/ext3_fs_i.h index ca1bfe90004..93e7428156b 100644 --- a/include/linux/ext3_fs_i.h +++ b/include/linux/ext3_fs_i.h | |||
@@ -137,6 +137,14 @@ struct ext3_inode_info { | |||
137 | * by other means, so we have truncate_mutex. | 137 | * by other means, so we have truncate_mutex. |
138 | */ | 138 | */ |
139 | struct mutex truncate_mutex; | 139 | struct mutex truncate_mutex; |
140 | |||
141 | /* | ||
142 | * Transactions that contain inode's metadata needed to complete | ||
143 | * fsync and fdatasync, respectively. | ||
144 | */ | ||
145 | atomic_t i_sync_tid; | ||
146 | atomic_t i_datasync_tid; | ||
147 | |||
140 | struct inode vfs_inode; | 148 | struct inode vfs_inode; |
141 | }; | 149 | }; |
142 | 150 | ||
diff --git a/include/linux/fb.h b/include/linux/fb.h index a34bdf5a9d2..de9c722e7b9 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h | |||
@@ -669,12 +669,6 @@ struct fb_ops { | |||
669 | /* perform fb specific mmap */ | 669 | /* perform fb specific mmap */ |
670 | int (*fb_mmap)(struct fb_info *info, struct vm_area_struct *vma); | 670 | int (*fb_mmap)(struct fb_info *info, struct vm_area_struct *vma); |
671 | 671 | ||
672 | /* save current hardware state */ | ||
673 | void (*fb_save_state)(struct fb_info *info); | ||
674 | |||
675 | /* restore saved state */ | ||
676 | void (*fb_restore_state)(struct fb_info *info); | ||
677 | |||
678 | /* get capability given var */ | 672 | /* get capability given var */ |
679 | void (*fb_get_caps)(struct fb_info *info, struct fb_blit_caps *caps, | 673 | void (*fb_get_caps)(struct fb_info *info, struct fb_blit_caps *caps, |
680 | struct fb_var_screeninfo *var); | 674 | struct fb_var_screeninfo *var); |
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h index 4ec5e67e18c..d11770472bc 100644 --- a/include/linux/ftrace_event.h +++ b/include/linux/ftrace_event.h | |||
@@ -144,7 +144,7 @@ extern char *trace_profile_buf_nmi; | |||
144 | #define MAX_FILTER_STR_VAL 256 /* Should handle KSYM_SYMBOL_LEN */ | 144 | #define MAX_FILTER_STR_VAL 256 /* Should handle KSYM_SYMBOL_LEN */ |
145 | 145 | ||
146 | extern void destroy_preds(struct ftrace_event_call *call); | 146 | extern void destroy_preds(struct ftrace_event_call *call); |
147 | extern int filter_match_preds(struct ftrace_event_call *call, void *rec); | 147 | extern int filter_match_preds(struct event_filter *filter, void *rec); |
148 | extern int filter_current_check_discard(struct ring_buffer *buffer, | 148 | extern int filter_current_check_discard(struct ring_buffer *buffer, |
149 | struct ftrace_event_call *call, | 149 | struct ftrace_event_call *call, |
150 | void *rec, | 150 | void *rec, |
@@ -186,4 +186,13 @@ do { \ | |||
186 | __trace_printk(ip, fmt, ##args); \ | 186 | __trace_printk(ip, fmt, ##args); \ |
187 | } while (0) | 187 | } while (0) |
188 | 188 | ||
189 | #ifdef CONFIG_EVENT_PROFILE | ||
190 | struct perf_event; | ||
191 | extern int ftrace_profile_enable(int event_id); | ||
192 | extern void ftrace_profile_disable(int event_id); | ||
193 | extern int ftrace_profile_set_filter(struct perf_event *event, int event_id, | ||
194 | char *filter_str); | ||
195 | extern void ftrace_profile_free_filter(struct perf_event *event); | ||
196 | #endif | ||
197 | |||
189 | #endif /* _LINUX_FTRACE_EVENT_H */ | 198 | #endif /* _LINUX_FTRACE_EVENT_H */ |
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 57d41b0abce..7b40cda57a7 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
@@ -361,6 +361,24 @@ static inline void i2c_set_adapdata(struct i2c_adapter *dev, void *data) | |||
361 | dev_set_drvdata(&dev->dev, data); | 361 | dev_set_drvdata(&dev->dev, data); |
362 | } | 362 | } |
363 | 363 | ||
364 | /** | ||
365 | * i2c_lock_adapter - Prevent access to an I2C bus segment | ||
366 | * @adapter: Target I2C bus segment | ||
367 | */ | ||
368 | static inline void i2c_lock_adapter(struct i2c_adapter *adapter) | ||
369 | { | ||
370 | mutex_lock(&adapter->bus_lock); | ||
371 | } | ||
372 | |||
373 | /** | ||
374 | * i2c_unlock_adapter - Reauthorize access to an I2C bus segment | ||
375 | * @adapter: Target I2C bus segment | ||
376 | */ | ||
377 | static inline void i2c_unlock_adapter(struct i2c_adapter *adapter) | ||
378 | { | ||
379 | mutex_unlock(&adapter->bus_lock); | ||
380 | } | ||
381 | |||
364 | /*flags for the client struct: */ | 382 | /*flags for the client struct: */ |
365 | #define I2C_CLIENT_PEC 0x04 /* Use Packet Error Checking */ | 383 | #define I2C_CLIENT_PEC 0x04 /* Use Packet Error Checking */ |
366 | #define I2C_CLIENT_TEN 0x10 /* we have a ten bit chip address */ | 384 | #define I2C_CLIENT_TEN 0x10 /* we have a ten bit chip address */ |
diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h index 6547c3cdbc4..82a9124f7d7 100644 --- a/include/linux/moduleparam.h +++ b/include/linux/moduleparam.h | |||
@@ -37,7 +37,6 @@ typedef int (*param_set_fn)(const char *val, struct kernel_param *kp); | |||
37 | typedef int (*param_get_fn)(char *buffer, struct kernel_param *kp); | 37 | typedef int (*param_get_fn)(char *buffer, struct kernel_param *kp); |
38 | 38 | ||
39 | /* Flag bits for kernel_param.flags */ | 39 | /* Flag bits for kernel_param.flags */ |
40 | #define KPARAM_KMALLOCED 1 | ||
41 | #define KPARAM_ISBOOL 2 | 40 | #define KPARAM_ISBOOL 2 |
42 | 41 | ||
43 | struct kernel_param { | 42 | struct kernel_param { |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 94958c10976..812a5f3c2ab 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -557,7 +557,7 @@ struct netdev_queue { | |||
557 | * Callback uses when the transmitter has not made any progress | 557 | * Callback uses when the transmitter has not made any progress |
558 | * for dev->watchdog ticks. | 558 | * for dev->watchdog ticks. |
559 | * | 559 | * |
560 | * struct net_device_stats* (*get_stats)(struct net_device *dev); | 560 | * struct net_device_stats* (*ndo_get_stats)(struct net_device *dev); |
561 | * Called when a user wants to get the network device usage | 561 | * Called when a user wants to get the network device usage |
562 | * statistics. If not defined, the counters in dev->stats will | 562 | * statistics. If not defined, the counters in dev->stats will |
563 | * be used. | 563 | * be used. |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index f490e7a7307..84cf1f3b783 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -379,9 +379,6 @@ | |||
379 | #define PCI_DEVICE_ID_ATI_IXP600_IDE 0x438c | 379 | #define PCI_DEVICE_ID_ATI_IXP600_IDE 0x438c |
380 | #define PCI_DEVICE_ID_ATI_IXP700_SATA 0x4390 | 380 | #define PCI_DEVICE_ID_ATI_IXP700_SATA 0x4390 |
381 | #define PCI_DEVICE_ID_ATI_IXP700_IDE 0x439c | 381 | #define PCI_DEVICE_ID_ATI_IXP700_IDE 0x439c |
382 | /* AMD SB Chipset */ | ||
383 | #define PCI_DEVICE_ID_AMD_SB900_IDE 0x780c | ||
384 | #define PCI_DEVICE_ID_AMD_SB900_SATA_IDE 0x7800 | ||
385 | 382 | ||
386 | #define PCI_VENDOR_ID_VLSI 0x1004 | 383 | #define PCI_VENDOR_ID_VLSI 0x1004 |
387 | #define PCI_DEVICE_ID_VLSI_82C592 0x0005 | 384 | #define PCI_DEVICE_ID_VLSI_82C592 0x0005 |
@@ -485,6 +482,9 @@ | |||
485 | #define PCI_DEVICE_ID_IBM_ICOM_V2_ONE_PORT_RVX_ONE_PORT_MDM_PCIE 0x0361 | 482 | #define PCI_DEVICE_ID_IBM_ICOM_V2_ONE_PORT_RVX_ONE_PORT_MDM_PCIE 0x0361 |
486 | #define PCI_DEVICE_ID_IBM_ICOM_FOUR_PORT_MODEL 0x252 | 483 | #define PCI_DEVICE_ID_IBM_ICOM_FOUR_PORT_MODEL 0x252 |
487 | 484 | ||
485 | #define PCI_SUBVENDOR_ID_IBM 0x1014 | ||
486 | #define PCI_SUBDEVICE_ID_IBM_SATURN_SERIAL_ONE_PORT 0x03d4 | ||
487 | |||
488 | #define PCI_VENDOR_ID_UNISYS 0x1018 | 488 | #define PCI_VENDOR_ID_UNISYS 0x1018 |
489 | #define PCI_DEVICE_ID_UNISYS_DMA_DIRECTOR 0x001C | 489 | #define PCI_DEVICE_ID_UNISYS_DMA_DIRECTOR 0x001C |
490 | 490 | ||
@@ -543,7 +543,7 @@ | |||
543 | #define PCI_DEVICE_ID_AMD_8131_BRIDGE 0x7450 | 543 | #define PCI_DEVICE_ID_AMD_8131_BRIDGE 0x7450 |
544 | #define PCI_DEVICE_ID_AMD_8131_APIC 0x7451 | 544 | #define PCI_DEVICE_ID_AMD_8131_APIC 0x7451 |
545 | #define PCI_DEVICE_ID_AMD_8132_BRIDGE 0x7458 | 545 | #define PCI_DEVICE_ID_AMD_8132_BRIDGE 0x7458 |
546 | #define PCI_DEVICE_ID_AMD_SB900_SMBUS 0x780b | 546 | #define PCI_DEVICE_ID_AMD_HUDSON2_SMBUS 0x780b |
547 | #define PCI_DEVICE_ID_AMD_CS5535_IDE 0x208F | 547 | #define PCI_DEVICE_ID_AMD_CS5535_IDE 0x208F |
548 | #define PCI_DEVICE_ID_AMD_CS5536_ISA 0x2090 | 548 | #define PCI_DEVICE_ID_AMD_CS5536_ISA 0x2090 |
549 | #define PCI_DEVICE_ID_AMD_CS5536_FLASH 0x2091 | 549 | #define PCI_DEVICE_ID_AMD_CS5536_FLASH 0x2091 |
@@ -553,9 +553,10 @@ | |||
553 | #define PCI_DEVICE_ID_AMD_CS5536_UDC 0x2096 | 553 | #define PCI_DEVICE_ID_AMD_CS5536_UDC 0x2096 |
554 | #define PCI_DEVICE_ID_AMD_CS5536_UOC 0x2097 | 554 | #define PCI_DEVICE_ID_AMD_CS5536_UOC 0x2097 |
555 | #define PCI_DEVICE_ID_AMD_CS5536_IDE 0x209A | 555 | #define PCI_DEVICE_ID_AMD_CS5536_IDE 0x209A |
556 | |||
557 | #define PCI_DEVICE_ID_AMD_LX_VIDEO 0x2081 | 556 | #define PCI_DEVICE_ID_AMD_LX_VIDEO 0x2081 |
558 | #define PCI_DEVICE_ID_AMD_LX_AES 0x2082 | 557 | #define PCI_DEVICE_ID_AMD_LX_AES 0x2082 |
558 | #define PCI_DEVICE_ID_AMD_HUDSON2_IDE 0x780c | ||
559 | #define PCI_DEVICE_ID_AMD_HUDSON2_SATA_IDE 0x7800 | ||
559 | 560 | ||
560 | #define PCI_VENDOR_ID_TRIDENT 0x1023 | 561 | #define PCI_VENDOR_ID_TRIDENT 0x1023 |
561 | #define PCI_DEVICE_ID_TRIDENT_4DWAVE_DX 0x2000 | 562 | #define PCI_DEVICE_ID_TRIDENT_4DWAVE_DX 0x2000 |
@@ -1955,6 +1956,8 @@ | |||
1955 | #define PCI_DEVICE_ID_LAVA_DSERIAL 0x0100 /* 2x 16550 */ | 1956 | #define PCI_DEVICE_ID_LAVA_DSERIAL 0x0100 /* 2x 16550 */ |
1956 | #define PCI_DEVICE_ID_LAVA_QUATRO_A 0x0101 /* 2x 16550, half of 4 port */ | 1957 | #define PCI_DEVICE_ID_LAVA_QUATRO_A 0x0101 /* 2x 16550, half of 4 port */ |
1957 | #define PCI_DEVICE_ID_LAVA_QUATRO_B 0x0102 /* 2x 16550, half of 4 port */ | 1958 | #define PCI_DEVICE_ID_LAVA_QUATRO_B 0x0102 /* 2x 16550, half of 4 port */ |
1959 | #define PCI_DEVICE_ID_LAVA_QUATTRO_A 0x0120 /* 2x 16550A, half of 4 port */ | ||
1960 | #define PCI_DEVICE_ID_LAVA_QUATTRO_B 0x0121 /* 2x 16550A, half of 4 port */ | ||
1958 | #define PCI_DEVICE_ID_LAVA_OCTO_A 0x0180 /* 4x 16550A, half of 8 port */ | 1961 | #define PCI_DEVICE_ID_LAVA_OCTO_A 0x0180 /* 4x 16550A, half of 8 port */ |
1959 | #define PCI_DEVICE_ID_LAVA_OCTO_B 0x0181 /* 4x 16550A, half of 8 port */ | 1962 | #define PCI_DEVICE_ID_LAVA_OCTO_B 0x0181 /* 4x 16550A, half of 8 port */ |
1960 | #define PCI_DEVICE_ID_LAVA_PORT_PLUS 0x0200 /* 2x 16650 */ | 1963 | #define PCI_DEVICE_ID_LAVA_PORT_PLUS 0x0200 /* 2x 16650 */ |
@@ -2162,6 +2165,10 @@ | |||
2162 | #define PCI_DEVICE_ID_ADDIDATA_APCI7420_3 0x700D | 2165 | #define PCI_DEVICE_ID_ADDIDATA_APCI7420_3 0x700D |
2163 | #define PCI_DEVICE_ID_ADDIDATA_APCI7300_3 0x700E | 2166 | #define PCI_DEVICE_ID_ADDIDATA_APCI7300_3 0x700E |
2164 | #define PCI_DEVICE_ID_ADDIDATA_APCI7800_3 0x700F | 2167 | #define PCI_DEVICE_ID_ADDIDATA_APCI7800_3 0x700F |
2168 | #define PCI_DEVICE_ID_ADDIDATA_APCIe7300 0x7010 | ||
2169 | #define PCI_DEVICE_ID_ADDIDATA_APCIe7420 0x7011 | ||
2170 | #define PCI_DEVICE_ID_ADDIDATA_APCIe7500 0x7012 | ||
2171 | #define PCI_DEVICE_ID_ADDIDATA_APCIe7800 0x7013 | ||
2165 | 2172 | ||
2166 | #define PCI_VENDOR_ID_PDC 0x15e9 | 2173 | #define PCI_VENDOR_ID_PDC 0x15e9 |
2167 | 2174 | ||
diff --git a/include/linux/perf_counter.h b/include/linux/perf_counter.h index d6b95d1e79f..e3fb2560670 100644 --- a/include/linux/perf_counter.h +++ b/include/linux/perf_counter.h | |||
@@ -227,6 +227,7 @@ struct perf_counter_attr { | |||
227 | #define PERF_COUNTER_IOC_RESET _IO ('$', 3) | 227 | #define PERF_COUNTER_IOC_RESET _IO ('$', 3) |
228 | #define PERF_COUNTER_IOC_PERIOD _IOW('$', 4, u64) | 228 | #define PERF_COUNTER_IOC_PERIOD _IOW('$', 4, u64) |
229 | #define PERF_COUNTER_IOC_SET_OUTPUT _IO ('$', 5) | 229 | #define PERF_COUNTER_IOC_SET_OUTPUT _IO ('$', 5) |
230 | #define PERF_COUNTER_IOC_SET_FILTER _IOW('$', 6, char *) | ||
230 | 231 | ||
231 | enum perf_counter_ioc_flags { | 232 | enum perf_counter_ioc_flags { |
232 | PERF_IOC_FLAG_GROUP = 1U << 0, | 233 | PERF_IOC_FLAG_GROUP = 1U << 0, |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index a33707a3a78..df4e73e3377 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
@@ -221,8 +221,9 @@ struct perf_event_attr { | |||
221 | #define PERF_EVENT_IOC_DISABLE _IO ('$', 1) | 221 | #define PERF_EVENT_IOC_DISABLE _IO ('$', 1) |
222 | #define PERF_EVENT_IOC_REFRESH _IO ('$', 2) | 222 | #define PERF_EVENT_IOC_REFRESH _IO ('$', 2) |
223 | #define PERF_EVENT_IOC_RESET _IO ('$', 3) | 223 | #define PERF_EVENT_IOC_RESET _IO ('$', 3) |
224 | #define PERF_EVENT_IOC_PERIOD _IOW('$', 4, u64) | 224 | #define PERF_EVENT_IOC_PERIOD _IOW('$', 4, __u64) |
225 | #define PERF_EVENT_IOC_SET_OUTPUT _IO ('$', 5) | 225 | #define PERF_EVENT_IOC_SET_OUTPUT _IO ('$', 5) |
226 | #define PERF_EVENT_IOC_SET_FILTER _IOW('$', 6, char *) | ||
226 | 227 | ||
227 | enum perf_event_ioc_flags { | 228 | enum perf_event_ioc_flags { |
228 | PERF_IOC_FLAG_GROUP = 1U << 0, | 229 | PERF_IOC_FLAG_GROUP = 1U << 0, |
@@ -473,8 +474,8 @@ struct hw_perf_event { | |||
473 | unsigned long event_base; | 474 | unsigned long event_base; |
474 | int idx; | 475 | int idx; |
475 | }; | 476 | }; |
476 | union { /* software */ | 477 | struct { /* software */ |
477 | atomic64_t count; | 478 | s64 remaining; |
478 | struct hrtimer hrtimer; | 479 | struct hrtimer hrtimer; |
479 | }; | 480 | }; |
480 | }; | 481 | }; |
@@ -635,7 +636,12 @@ struct perf_event { | |||
635 | 636 | ||
636 | struct pid_namespace *ns; | 637 | struct pid_namespace *ns; |
637 | u64 id; | 638 | u64 id; |
639 | |||
640 | #ifdef CONFIG_EVENT_PROFILE | ||
641 | struct event_filter *filter; | ||
638 | #endif | 642 | #endif |
643 | |||
644 | #endif /* CONFIG_PERF_EVENTS */ | ||
639 | }; | 645 | }; |
640 | 646 | ||
641 | /** | 647 | /** |
diff --git a/include/linux/prctl.h b/include/linux/prctl.h index 931150566ad..a3baeb2c216 100644 --- a/include/linux/prctl.h +++ b/include/linux/prctl.h | |||
@@ -88,6 +88,18 @@ | |||
88 | #define PR_TASK_PERF_EVENTS_DISABLE 31 | 88 | #define PR_TASK_PERF_EVENTS_DISABLE 31 |
89 | #define PR_TASK_PERF_EVENTS_ENABLE 32 | 89 | #define PR_TASK_PERF_EVENTS_ENABLE 32 |
90 | 90 | ||
91 | /* | ||
92 | * Set early/late kill mode for hwpoison memory corruption. | ||
93 | * This influences when the process gets killed on a memory corruption. | ||
94 | */ | ||
91 | #define PR_MCE_KILL 33 | 95 | #define PR_MCE_KILL 33 |
96 | # define PR_MCE_KILL_CLEAR 0 | ||
97 | # define PR_MCE_KILL_SET 1 | ||
98 | |||
99 | # define PR_MCE_KILL_LATE 0 | ||
100 | # define PR_MCE_KILL_EARLY 1 | ||
101 | # define PR_MCE_KILL_DEFAULT 2 | ||
102 | |||
103 | #define PR_MCE_KILL_GET 34 | ||
92 | 104 | ||
93 | #endif /* _LINUX_PRCTL_H */ | 105 | #endif /* _LINUX_PRCTL_H */ |
diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h index 46e9ab3ee6e..9642c6bcb39 100644 --- a/include/linux/rcutree.h +++ b/include/linux/rcutree.h | |||
@@ -76,11 +76,7 @@ static inline void __rcu_read_unlock_bh(void) | |||
76 | 76 | ||
77 | extern void call_rcu_sched(struct rcu_head *head, | 77 | extern void call_rcu_sched(struct rcu_head *head, |
78 | void (*func)(struct rcu_head *rcu)); | 78 | void (*func)(struct rcu_head *rcu)); |
79 | 79 | extern void synchronize_rcu_expedited(void); | |
80 | static inline void synchronize_rcu_expedited(void) | ||
81 | { | ||
82 | synchronize_sched_expedited(); | ||
83 | } | ||
84 | 80 | ||
85 | static inline void synchronize_rcu_bh_expedited(void) | 81 | static inline void synchronize_rcu_bh_expedited(void) |
86 | { | 82 | { |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index df7b23ac66e..bcdd6606f46 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -354,8 +354,8 @@ struct sk_buff { | |||
354 | ipvs_property:1, | 354 | ipvs_property:1, |
355 | peeked:1, | 355 | peeked:1, |
356 | nf_trace:1; | 356 | nf_trace:1; |
357 | __be16 protocol:16; | ||
357 | kmemcheck_bitfield_end(flags1); | 358 | kmemcheck_bitfield_end(flags1); |
358 | __be16 protocol; | ||
359 | 359 | ||
360 | void (*destructor)(struct sk_buff *skb); | 360 | void (*destructor)(struct sk_buff *skb); |
361 | #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) | 361 | #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) |
@@ -367,7 +367,6 @@ struct sk_buff { | |||
367 | #endif | 367 | #endif |
368 | 368 | ||
369 | int iif; | 369 | int iif; |
370 | __u16 queue_mapping; | ||
371 | #ifdef CONFIG_NET_SCHED | 370 | #ifdef CONFIG_NET_SCHED |
372 | __u16 tc_index; /* traffic control index */ | 371 | __u16 tc_index; /* traffic control index */ |
373 | #ifdef CONFIG_NET_CLS_ACT | 372 | #ifdef CONFIG_NET_CLS_ACT |
@@ -376,6 +375,7 @@ struct sk_buff { | |||
376 | #endif | 375 | #endif |
377 | 376 | ||
378 | kmemcheck_bitfield_begin(flags2); | 377 | kmemcheck_bitfield_begin(flags2); |
378 | __u16 queue_mapping:16; | ||
379 | #ifdef CONFIG_IPV6_NDISC_NODETYPE | 379 | #ifdef CONFIG_IPV6_NDISC_NODETYPE |
380 | __u8 ndisc_nodetype:2; | 380 | __u8 ndisc_nodetype:2; |
381 | #endif | 381 | #endif |
@@ -1757,6 +1757,8 @@ extern int skb_copy_datagram_const_iovec(const struct sk_buff *from, | |||
1757 | int to_offset, | 1757 | int to_offset, |
1758 | int size); | 1758 | int size); |
1759 | extern void skb_free_datagram(struct sock *sk, struct sk_buff *skb); | 1759 | extern void skb_free_datagram(struct sock *sk, struct sk_buff *skb); |
1760 | extern void skb_free_datagram_locked(struct sock *sk, | ||
1761 | struct sk_buff *skb); | ||
1760 | extern int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, | 1762 | extern int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, |
1761 | unsigned int flags); | 1763 | unsigned int flags); |
1762 | extern __wsum skb_checksum(const struct sk_buff *skb, int offset, | 1764 | extern __wsum skb_checksum(const struct sk_buff *skb, int offset, |
diff --git a/include/linux/smp_lock.h b/include/linux/smp_lock.h index 813be59bf34..2ea1dd1ba21 100644 --- a/include/linux/smp_lock.h +++ b/include/linux/smp_lock.h | |||
@@ -24,8 +24,21 @@ static inline int reacquire_kernel_lock(struct task_struct *task) | |||
24 | return 0; | 24 | return 0; |
25 | } | 25 | } |
26 | 26 | ||
27 | extern void __lockfunc lock_kernel(void) __acquires(kernel_lock); | 27 | extern void __lockfunc |
28 | extern void __lockfunc unlock_kernel(void) __releases(kernel_lock); | 28 | _lock_kernel(const char *func, const char *file, int line) |
29 | __acquires(kernel_lock); | ||
30 | |||
31 | extern void __lockfunc | ||
32 | _unlock_kernel(const char *func, const char *file, int line) | ||
33 | __releases(kernel_lock); | ||
34 | |||
35 | #define lock_kernel() do { \ | ||
36 | _lock_kernel(__func__, __FILE__, __LINE__); \ | ||
37 | } while (0) | ||
38 | |||
39 | #define unlock_kernel() do { \ | ||
40 | _unlock_kernel(__func__, __FILE__, __LINE__); \ | ||
41 | } while (0) | ||
29 | 42 | ||
30 | /* | 43 | /* |
31 | * Various legacy drivers don't really need the BKL in a specific | 44 | * Various legacy drivers don't really need the BKL in a specific |
@@ -41,8 +54,8 @@ static inline void cycle_kernel_lock(void) | |||
41 | 54 | ||
42 | #else | 55 | #else |
43 | 56 | ||
44 | #define lock_kernel() do { } while(0) | 57 | #define lock_kernel() |
45 | #define unlock_kernel() do { } while(0) | 58 | #define unlock_kernel() |
46 | #define release_kernel_lock(task) do { } while(0) | 59 | #define release_kernel_lock(task) do { } while(0) |
47 | #define cycle_kernel_lock() do { } while(0) | 60 | #define cycle_kernel_lock() do { } while(0) |
48 | #define reacquire_kernel_lock(task) 0 | 61 | #define reacquire_kernel_lock(task) 0 |
diff --git a/include/linux/string.h b/include/linux/string.h index 489019ef169..b8508868d5a 100644 --- a/include/linux/string.h +++ b/include/linux/string.h | |||
@@ -62,7 +62,7 @@ extern char * strnchr(const char *, size_t, int); | |||
62 | #ifndef __HAVE_ARCH_STRRCHR | 62 | #ifndef __HAVE_ARCH_STRRCHR |
63 | extern char * strrchr(const char *,int); | 63 | extern char * strrchr(const char *,int); |
64 | #endif | 64 | #endif |
65 | extern char * strstrip(char *); | 65 | extern char * __must_check strstrip(char *); |
66 | #ifndef __HAVE_ARCH_STRSTR | 66 | #ifndef __HAVE_ARCH_STRSTR |
67 | extern char * strstr(const char *,const char *); | 67 | extern char * strstr(const char *,const char *); |
68 | #endif | 68 | #endif |
diff --git a/include/linux/topology.h b/include/linux/topology.h index fc0bf3edeb6..57e63579bfd 100644 --- a/include/linux/topology.h +++ b/include/linux/topology.h | |||
@@ -129,7 +129,7 @@ int arch_update_cpu_topology(void); | |||
129 | | 1*SD_BALANCE_FORK \ | 129 | | 1*SD_BALANCE_FORK \ |
130 | | 0*SD_BALANCE_WAKE \ | 130 | | 0*SD_BALANCE_WAKE \ |
131 | | 1*SD_WAKE_AFFINE \ | 131 | | 1*SD_WAKE_AFFINE \ |
132 | | 1*SD_PREFER_LOCAL \ | 132 | | 0*SD_PREFER_LOCAL \ |
133 | | 0*SD_SHARE_CPUPOWER \ | 133 | | 0*SD_SHARE_CPUPOWER \ |
134 | | 1*SD_SHARE_PKG_RESOURCES \ | 134 | | 1*SD_SHARE_PKG_RESOURCES \ |
135 | | 0*SD_SERIALIZE \ | 135 | | 0*SD_SERIALIZE \ |
@@ -162,7 +162,7 @@ int arch_update_cpu_topology(void); | |||
162 | | 1*SD_BALANCE_FORK \ | 162 | | 1*SD_BALANCE_FORK \ |
163 | | 0*SD_BALANCE_WAKE \ | 163 | | 0*SD_BALANCE_WAKE \ |
164 | | 1*SD_WAKE_AFFINE \ | 164 | | 1*SD_WAKE_AFFINE \ |
165 | | 1*SD_PREFER_LOCAL \ | 165 | | 0*SD_PREFER_LOCAL \ |
166 | | 0*SD_SHARE_CPUPOWER \ | 166 | | 0*SD_SHARE_CPUPOWER \ |
167 | | 0*SD_SHARE_PKG_RESOURCES \ | 167 | | 0*SD_SHARE_PKG_RESOURCES \ |
168 | | 0*SD_SERIALIZE \ | 168 | | 0*SD_SERIALIZE \ |
diff --git a/include/linux/trace_seq.h b/include/linux/trace_seq.h index c134dd1fe6b..09077f6ed12 100644 --- a/include/linux/trace_seq.h +++ b/include/linux/trace_seq.h | |||
@@ -7,7 +7,7 @@ | |||
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Trace sequences are used to allow a function to call several other functions | 9 | * Trace sequences are used to allow a function to call several other functions |
10 | * to create a string of data to use (up to a max of PAGE_SIZE. | 10 | * to create a string of data to use (up to a max of PAGE_SIZE). |
11 | */ | 11 | */ |
12 | 12 | ||
13 | struct trace_seq { | 13 | struct trace_seq { |
diff --git a/include/linux/virtio_9p.h b/include/linux/virtio_9p.h index ea7226a45ac..095e10d148b 100644 --- a/include/linux/virtio_9p.h +++ b/include/linux/virtio_9p.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define _LINUX_VIRTIO_9P_H | 2 | #define _LINUX_VIRTIO_9P_H |
3 | /* This header is BSD licensed so anyone can use the definitions to implement | 3 | /* This header is BSD licensed so anyone can use the definitions to implement |
4 | * compatible drivers/servers. */ | 4 | * compatible drivers/servers. */ |
5 | #include <linux/virtio_ids.h> | ||
5 | #include <linux/virtio_config.h> | 6 | #include <linux/virtio_config.h> |
6 | 7 | ||
7 | /* Maximum number of virtio channels per partition (1 for now) */ | 8 | /* Maximum number of virtio channels per partition (1 for now) */ |
diff --git a/include/linux/virtio_balloon.h b/include/linux/virtio_balloon.h index 09d73008506..1418f048cb3 100644 --- a/include/linux/virtio_balloon.h +++ b/include/linux/virtio_balloon.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define _LINUX_VIRTIO_BALLOON_H | 2 | #define _LINUX_VIRTIO_BALLOON_H |
3 | /* This header is BSD licensed so anyone can use the definitions to implement | 3 | /* This header is BSD licensed so anyone can use the definitions to implement |
4 | * compatible drivers/servers. */ | 4 | * compatible drivers/servers. */ |
5 | #include <linux/virtio_ids.h> | ||
5 | #include <linux/virtio_config.h> | 6 | #include <linux/virtio_config.h> |
6 | 7 | ||
7 | /* The feature bitmap for virtio balloon */ | 8 | /* The feature bitmap for virtio balloon */ |
diff --git a/include/linux/virtio_blk.h b/include/linux/virtio_blk.h index 15cb666581d..fd294c56d57 100644 --- a/include/linux/virtio_blk.h +++ b/include/linux/virtio_blk.h | |||
@@ -3,6 +3,7 @@ | |||
3 | /* This header is BSD licensed so anyone can use the definitions to implement | 3 | /* This header is BSD licensed so anyone can use the definitions to implement |
4 | * compatible drivers/servers. */ | 4 | * compatible drivers/servers. */ |
5 | #include <linux/types.h> | 5 | #include <linux/types.h> |
6 | #include <linux/virtio_ids.h> | ||
6 | #include <linux/virtio_config.h> | 7 | #include <linux/virtio_config.h> |
7 | 8 | ||
8 | /* Feature bits */ | 9 | /* Feature bits */ |
@@ -13,11 +14,8 @@ | |||
13 | #define VIRTIO_BLK_F_RO 5 /* Disk is read-only */ | 14 | #define VIRTIO_BLK_F_RO 5 /* Disk is read-only */ |
14 | #define VIRTIO_BLK_F_BLK_SIZE 6 /* Block size of disk is available*/ | 15 | #define VIRTIO_BLK_F_BLK_SIZE 6 /* Block size of disk is available*/ |
15 | #define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */ | 16 | #define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */ |
16 | #define VIRTIO_BLK_F_IDENTIFY 8 /* ATA IDENTIFY supported */ | ||
17 | #define VIRTIO_BLK_F_FLUSH 9 /* Cache flush command support */ | 17 | #define VIRTIO_BLK_F_FLUSH 9 /* Cache flush command support */ |
18 | 18 | ||
19 | #define VIRTIO_BLK_ID_BYTES (sizeof(__u16[256])) /* IDENTIFY DATA */ | ||
20 | |||
21 | struct virtio_blk_config { | 19 | struct virtio_blk_config { |
22 | /* The capacity (in 512-byte sectors). */ | 20 | /* The capacity (in 512-byte sectors). */ |
23 | __u64 capacity; | 21 | __u64 capacity; |
@@ -33,7 +31,6 @@ struct virtio_blk_config { | |||
33 | } geometry; | 31 | } geometry; |
34 | /* block size of device (if VIRTIO_BLK_F_BLK_SIZE) */ | 32 | /* block size of device (if VIRTIO_BLK_F_BLK_SIZE) */ |
35 | __u32 blk_size; | 33 | __u32 blk_size; |
36 | __u8 identify[VIRTIO_BLK_ID_BYTES]; | ||
37 | } __attribute__((packed)); | 34 | } __attribute__((packed)); |
38 | 35 | ||
39 | /* | 36 | /* |
diff --git a/include/linux/virtio_console.h b/include/linux/virtio_console.h index b5f51980601..fe885174cc1 100644 --- a/include/linux/virtio_console.h +++ b/include/linux/virtio_console.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #ifndef _LINUX_VIRTIO_CONSOLE_H | 1 | #ifndef _LINUX_VIRTIO_CONSOLE_H |
2 | #define _LINUX_VIRTIO_CONSOLE_H | 2 | #define _LINUX_VIRTIO_CONSOLE_H |
3 | #include <linux/types.h> | 3 | #include <linux/types.h> |
4 | #include <linux/virtio_ids.h> | ||
4 | #include <linux/virtio_config.h> | 5 | #include <linux/virtio_config.h> |
5 | /* This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so | 6 | /* This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so |
6 | * anyone can use the definitions to implement compatible drivers/servers. */ | 7 | * anyone can use the definitions to implement compatible drivers/servers. */ |
diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h index 1f41734bbb7..085e42298ce 100644 --- a/include/linux/virtio_net.h +++ b/include/linux/virtio_net.h | |||
@@ -3,6 +3,7 @@ | |||
3 | /* This header is BSD licensed so anyone can use the definitions to implement | 3 | /* This header is BSD licensed so anyone can use the definitions to implement |
4 | * compatible drivers/servers. */ | 4 | * compatible drivers/servers. */ |
5 | #include <linux/types.h> | 5 | #include <linux/types.h> |
6 | #include <linux/virtio_ids.h> | ||
6 | #include <linux/virtio_config.h> | 7 | #include <linux/virtio_config.h> |
7 | #include <linux/if_ether.h> | 8 | #include <linux/if_ether.h> |
8 | 9 | ||
diff --git a/include/linux/virtio_rng.h b/include/linux/virtio_rng.h index 48121c3c434..c4d5de896f0 100644 --- a/include/linux/virtio_rng.h +++ b/include/linux/virtio_rng.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define _LINUX_VIRTIO_RNG_H | 2 | #define _LINUX_VIRTIO_RNG_H |
3 | /* This header is BSD licensed so anyone can use the definitions to implement | 3 | /* This header is BSD licensed so anyone can use the definitions to implement |
4 | * compatible drivers/servers. */ | 4 | * compatible drivers/servers. */ |
5 | #include <linux/virtio_ids.h> | ||
5 | #include <linux/virtio_config.h> | 6 | #include <linux/virtio_config.h> |
6 | 7 | ||
7 | #endif /* _LINUX_VIRTIO_RNG_H */ | 8 | #endif /* _LINUX_VIRTIO_RNG_H */ |
diff --git a/include/net/9p/client.h b/include/net/9p/client.h index e26812274b7..fb00b329f0d 100644 --- a/include/net/9p/client.h +++ b/include/net/9p/client.h | |||
@@ -159,8 +159,7 @@ struct p9_client { | |||
159 | * @qid: the &p9_qid server identifier this handle points to | 159 | * @qid: the &p9_qid server identifier this handle points to |
160 | * @iounit: the server reported maximum transaction size for this file | 160 | * @iounit: the server reported maximum transaction size for this file |
161 | * @uid: the numeric uid of the local user who owns this handle | 161 | * @uid: the numeric uid of the local user who owns this handle |
162 | * @aux: transport specific information (unused?) | 162 | * @rdir: readdir accounting structure (allocated on demand) |
163 | * @rdir_fpos: tracks offset of file position when reading directory contents | ||
164 | * @flist: per-client-instance fid tracking | 163 | * @flist: per-client-instance fid tracking |
165 | * @dlist: per-dentry fid tracking | 164 | * @dlist: per-dentry fid tracking |
166 | * | 165 | * |
@@ -174,9 +173,9 @@ struct p9_fid { | |||
174 | struct p9_qid qid; | 173 | struct p9_qid qid; |
175 | u32 iounit; | 174 | u32 iounit; |
176 | uid_t uid; | 175 | uid_t uid; |
177 | void *aux; | ||
178 | 176 | ||
179 | int rdir_fpos; | 177 | void *rdir; |
178 | |||
180 | struct list_head flist; | 179 | struct list_head flist; |
181 | struct list_head dlist; /* list of all fids attached to a dentry */ | 180 | struct list_head dlist; /* list of all fids attached to a dentry */ |
182 | }; | 181 | }; |
diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h index b63b80fac56..f93ad90a601 100644 --- a/include/net/inet_timewait_sock.h +++ b/include/net/inet_timewait_sock.h | |||
@@ -130,11 +130,11 @@ struct inet_timewait_sock { | |||
130 | __u16 tw_num; | 130 | __u16 tw_num; |
131 | kmemcheck_bitfield_begin(flags); | 131 | kmemcheck_bitfield_begin(flags); |
132 | /* And these are ours. */ | 132 | /* And these are ours. */ |
133 | __u8 tw_ipv6only:1, | 133 | unsigned int tw_ipv6only : 1, |
134 | tw_transparent:1; | 134 | tw_transparent : 1, |
135 | /* 14 bits hole, try to pack */ | 135 | tw_pad : 14, /* 14 bits hole */ |
136 | tw_ipv6_offset : 16; | ||
136 | kmemcheck_bitfield_end(flags); | 137 | kmemcheck_bitfield_end(flags); |
137 | __u16 tw_ipv6_offset; | ||
138 | unsigned long tw_ttd; | 138 | unsigned long tw_ttd; |
139 | struct inet_bind_bucket *tw_tb; | 139 | struct inet_bind_bucket *tw_tb; |
140 | struct hlist_node tw_death_node; | 140 | struct hlist_node tw_death_node; |
diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h index ef91fe924ba..4d22fabc771 100644 --- a/include/net/ip_fib.h +++ b/include/net/ip_fib.h | |||
@@ -210,7 +210,8 @@ extern struct fib_table *fib_get_table(struct net *net, u32 id); | |||
210 | extern const struct nla_policy rtm_ipv4_policy[]; | 210 | extern const struct nla_policy rtm_ipv4_policy[]; |
211 | extern void ip_fib_init(void); | 211 | extern void ip_fib_init(void); |
212 | extern int fib_validate_source(__be32 src, __be32 dst, u8 tos, int oif, | 212 | extern int fib_validate_source(__be32 src, __be32 dst, u8 tos, int oif, |
213 | struct net_device *dev, __be32 *spec_dst, u32 *itag); | 213 | struct net_device *dev, __be32 *spec_dst, |
214 | u32 *itag, u32 mark); | ||
214 | extern void fib_select_default(struct net *net, const struct flowi *flp, | 215 | extern void fib_select_default(struct net *net, const struct flowi *flp, |
215 | struct fib_result *res); | 216 | struct fib_result *res); |
216 | 217 | ||
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 466859b285e..c75b960c8ac 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -1669,6 +1669,8 @@ void ieee80211_restart_hw(struct ieee80211_hw *hw); | |||
1669 | * to this function and ieee80211_rx_irqsafe() may not be mixed for a | 1669 | * to this function and ieee80211_rx_irqsafe() may not be mixed for a |
1670 | * single hardware. | 1670 | * single hardware. |
1671 | * | 1671 | * |
1672 | * Note that right now, this function must be called with softirqs disabled. | ||
1673 | * | ||
1672 | * @hw: the hardware this frame came in on | 1674 | * @hw: the hardware this frame came in on |
1673 | * @skb: the buffer to receive, owned by mac80211 after this call | 1675 | * @skb: the buffer to receive, owned by mac80211 after this call |
1674 | */ | 1676 | */ |
diff --git a/include/net/netfilter/nf_conntrack.h b/include/net/netfilter/nf_conntrack.h index cbdd6284996..5cf7270e3ff 100644 --- a/include/net/netfilter/nf_conntrack.h +++ b/include/net/netfilter/nf_conntrack.h | |||
@@ -255,11 +255,9 @@ static inline bool nf_ct_kill(struct nf_conn *ct) | |||
255 | } | 255 | } |
256 | 256 | ||
257 | /* These are for NAT. Icky. */ | 257 | /* These are for NAT. Icky. */ |
258 | /* Update TCP window tracking data when NAT mangles the packet */ | 258 | extern s16 (*nf_ct_nat_offset)(const struct nf_conn *ct, |
259 | extern void nf_conntrack_tcp_update(const struct sk_buff *skb, | 259 | enum ip_conntrack_dir dir, |
260 | unsigned int dataoff, | 260 | u32 seq); |
261 | struct nf_conn *ct, int dir, | ||
262 | s16 offset); | ||
263 | 261 | ||
264 | /* Fake conntrack entry for untracked connections */ | 262 | /* Fake conntrack entry for untracked connections */ |
265 | extern struct nf_conn nf_conntrack_untracked; | 263 | extern struct nf_conn nf_conntrack_untracked; |
diff --git a/include/net/netfilter/nf_nat_helper.h b/include/net/netfilter/nf_nat_helper.h index 237a961f40e..4222220920a 100644 --- a/include/net/netfilter/nf_nat_helper.h +++ b/include/net/netfilter/nf_nat_helper.h | |||
@@ -32,4 +32,8 @@ extern int (*nf_nat_seq_adjust_hook)(struct sk_buff *skb, | |||
32 | * to port ct->master->saved_proto. */ | 32 | * to port ct->master->saved_proto. */ |
33 | extern void nf_nat_follow_master(struct nf_conn *ct, | 33 | extern void nf_nat_follow_master(struct nf_conn *ct, |
34 | struct nf_conntrack_expect *this); | 34 | struct nf_conntrack_expect *this); |
35 | |||
36 | extern s16 nf_nat_get_offset(const struct nf_conn *ct, | ||
37 | enum ip_conntrack_dir dir, | ||
38 | u32 seq); | ||
35 | #endif | 39 | #endif |
diff --git a/include/net/sock.h b/include/net/sock.h index 1621935aad5..9f96394f694 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -226,12 +226,12 @@ struct sock { | |||
226 | #define sk_prot __sk_common.skc_prot | 226 | #define sk_prot __sk_common.skc_prot |
227 | #define sk_net __sk_common.skc_net | 227 | #define sk_net __sk_common.skc_net |
228 | kmemcheck_bitfield_begin(flags); | 228 | kmemcheck_bitfield_begin(flags); |
229 | unsigned char sk_shutdown : 2, | 229 | unsigned int sk_shutdown : 2, |
230 | sk_no_check : 2, | 230 | sk_no_check : 2, |
231 | sk_userlocks : 4; | 231 | sk_userlocks : 4, |
232 | sk_protocol : 8, | ||
233 | sk_type : 16; | ||
232 | kmemcheck_bitfield_end(flags); | 234 | kmemcheck_bitfield_end(flags); |
233 | unsigned char sk_protocol; | ||
234 | unsigned short sk_type; | ||
235 | int sk_rcvbuf; | 235 | int sk_rcvbuf; |
236 | socket_lock_t sk_lock; | 236 | socket_lock_t sk_lock; |
237 | /* | 237 | /* |
diff --git a/include/pcmcia/ss.h b/include/pcmcia/ss.h index d696a692d94..e0f6feb8588 100644 --- a/include/pcmcia/ss.h +++ b/include/pcmcia/ss.h | |||
@@ -262,6 +262,8 @@ struct pcmcia_socket { | |||
262 | struct device dev; | 262 | struct device dev; |
263 | /* data internal to the socket driver */ | 263 | /* data internal to the socket driver */ |
264 | void *driver_data; | 264 | void *driver_data; |
265 | /* status of the card during resume from a system sleep state */ | ||
266 | int resume_status; | ||
265 | }; | 267 | }; |
266 | 268 | ||
267 | 269 | ||
@@ -280,6 +282,8 @@ extern struct pccard_resource_ops pccard_nonstatic_ops; | |||
280 | 282 | ||
281 | /* socket drivers are expected to use these callbacks in their .drv struct */ | 283 | /* socket drivers are expected to use these callbacks in their .drv struct */ |
282 | extern int pcmcia_socket_dev_suspend(struct device *dev); | 284 | extern int pcmcia_socket_dev_suspend(struct device *dev); |
285 | extern void pcmcia_socket_dev_early_resume(struct device *dev); | ||
286 | extern void pcmcia_socket_dev_late_resume(struct device *dev); | ||
283 | extern int pcmcia_socket_dev_resume(struct device *dev); | 287 | extern int pcmcia_socket_dev_resume(struct device *dev); |
284 | 288 | ||
285 | /* socket drivers use this callback in their IRQ handler */ | 289 | /* socket drivers use this callback in their IRQ handler */ |
diff --git a/include/trace/events/bkl.h b/include/trace/events/bkl.h new file mode 100644 index 00000000000..1af72dc2427 --- /dev/null +++ b/include/trace/events/bkl.h | |||
@@ -0,0 +1,61 @@ | |||
1 | #undef TRACE_SYSTEM | ||
2 | #define TRACE_SYSTEM bkl | ||
3 | |||
4 | #if !defined(_TRACE_BKL_H) || defined(TRACE_HEADER_MULTI_READ) | ||
5 | #define _TRACE_BKL_H | ||
6 | |||
7 | #include <linux/tracepoint.h> | ||
8 | |||
9 | TRACE_EVENT(lock_kernel, | ||
10 | |||
11 | TP_PROTO(const char *func, const char *file, int line), | ||
12 | |||
13 | TP_ARGS(func, file, line), | ||
14 | |||
15 | TP_STRUCT__entry( | ||
16 | __field( int, depth ) | ||
17 | __field_ext( const char *, func, FILTER_PTR_STRING ) | ||
18 | __field_ext( const char *, file, FILTER_PTR_STRING ) | ||
19 | __field( int, line ) | ||
20 | ), | ||
21 | |||
22 | TP_fast_assign( | ||
23 | /* We want to record the lock_depth after lock is acquired */ | ||
24 | __entry->depth = current->lock_depth + 1; | ||
25 | __entry->func = func; | ||
26 | __entry->file = file; | ||
27 | __entry->line = line; | ||
28 | ), | ||
29 | |||
30 | TP_printk("depth=%d file:line=%s:%d func=%s()", __entry->depth, | ||
31 | __entry->file, __entry->line, __entry->func) | ||
32 | ); | ||
33 | |||
34 | TRACE_EVENT(unlock_kernel, | ||
35 | |||
36 | TP_PROTO(const char *func, const char *file, int line), | ||
37 | |||
38 | TP_ARGS(func, file, line), | ||
39 | |||
40 | TP_STRUCT__entry( | ||
41 | __field(int, depth ) | ||
42 | __field(const char *, func ) | ||
43 | __field(const char *, file ) | ||
44 | __field(int, line ) | ||
45 | ), | ||
46 | |||
47 | TP_fast_assign( | ||
48 | __entry->depth = current->lock_depth; | ||
49 | __entry->func = func; | ||
50 | __entry->file = file; | ||
51 | __entry->line = line; | ||
52 | ), | ||
53 | |||
54 | TP_printk("depth=%d file:line=%s:%d func=%s()", __entry->depth, | ||
55 | __entry->file, __entry->line, __entry->func) | ||
56 | ); | ||
57 | |||
58 | #endif /* _TRACE_BKL_H */ | ||
59 | |||
60 | /* This part must be outside protection */ | ||
61 | #include <trace/define_trace.h> | ||
diff --git a/include/trace/events/irq.h b/include/trace/events/irq.h index b89f9db4a40..dcfcd440762 100644 --- a/include/trace/events/irq.h +++ b/include/trace/events/irq.h | |||
@@ -48,7 +48,7 @@ TRACE_EVENT(irq_handler_entry, | |||
48 | __assign_str(name, action->name); | 48 | __assign_str(name, action->name); |
49 | ), | 49 | ), |
50 | 50 | ||
51 | TP_printk("irq=%d handler=%s", __entry->irq, __get_str(name)) | 51 | TP_printk("irq=%d name=%s", __entry->irq, __get_str(name)) |
52 | ); | 52 | ); |
53 | 53 | ||
54 | /** | 54 | /** |
@@ -78,7 +78,7 @@ TRACE_EVENT(irq_handler_exit, | |||
78 | __entry->ret = ret; | 78 | __entry->ret = ret; |
79 | ), | 79 | ), |
80 | 80 | ||
81 | TP_printk("irq=%d return=%s", | 81 | TP_printk("irq=%d ret=%s", |
82 | __entry->irq, __entry->ret ? "handled" : "unhandled") | 82 | __entry->irq, __entry->ret ? "handled" : "unhandled") |
83 | ); | 83 | ); |
84 | 84 | ||
@@ -107,7 +107,7 @@ TRACE_EVENT(softirq_entry, | |||
107 | __entry->vec = (int)(h - vec); | 107 | __entry->vec = (int)(h - vec); |
108 | ), | 108 | ), |
109 | 109 | ||
110 | TP_printk("softirq=%d action=%s", __entry->vec, | 110 | TP_printk("vec=%d [action=%s]", __entry->vec, |
111 | show_softirq_name(__entry->vec)) | 111 | show_softirq_name(__entry->vec)) |
112 | ); | 112 | ); |
113 | 113 | ||
@@ -136,7 +136,7 @@ TRACE_EVENT(softirq_exit, | |||
136 | __entry->vec = (int)(h - vec); | 136 | __entry->vec = (int)(h - vec); |
137 | ), | 137 | ), |
138 | 138 | ||
139 | TP_printk("softirq=%d action=%s", __entry->vec, | 139 | TP_printk("vec=%d [action=%s]", __entry->vec, |
140 | show_softirq_name(__entry->vec)) | 140 | show_softirq_name(__entry->vec)) |
141 | ); | 141 | ); |
142 | 142 | ||
diff --git a/include/trace/events/lockdep.h b/include/trace/events/lock.h index bcf1d209a00..a870ba125aa 100644 --- a/include/trace/events/lockdep.h +++ b/include/trace/events/lock.h | |||
@@ -1,8 +1,8 @@ | |||
1 | #undef TRACE_SYSTEM | 1 | #undef TRACE_SYSTEM |
2 | #define TRACE_SYSTEM lockdep | 2 | #define TRACE_SYSTEM lock |
3 | 3 | ||
4 | #if !defined(_TRACE_LOCKDEP_H) || defined(TRACE_HEADER_MULTI_READ) | 4 | #if !defined(_TRACE_LOCK_H) || defined(TRACE_HEADER_MULTI_READ) |
5 | #define _TRACE_LOCKDEP_H | 5 | #define _TRACE_LOCK_H |
6 | 6 | ||
7 | #include <linux/lockdep.h> | 7 | #include <linux/lockdep.h> |
8 | #include <linux/tracepoint.h> | 8 | #include <linux/tracepoint.h> |
@@ -90,7 +90,7 @@ TRACE_EVENT(lock_acquired, | |||
90 | #endif | 90 | #endif |
91 | #endif | 91 | #endif |
92 | 92 | ||
93 | #endif /* _TRACE_LOCKDEP_H */ | 93 | #endif /* _TRACE_LOCK_H */ |
94 | 94 | ||
95 | /* This part must be outside protection */ | 95 | /* This part must be outside protection */ |
96 | #include <trace/define_trace.h> | 96 | #include <trace/define_trace.h> |
diff --git a/include/trace/events/power.h b/include/trace/events/power.h index ea6d579261a..9bb96e5a284 100644 --- a/include/trace/events/power.h +++ b/include/trace/events/power.h | |||
@@ -16,8 +16,6 @@ enum { | |||
16 | }; | 16 | }; |
17 | #endif | 17 | #endif |
18 | 18 | ||
19 | |||
20 | |||
21 | TRACE_EVENT(power_start, | 19 | TRACE_EVENT(power_start, |
22 | 20 | ||
23 | TP_PROTO(unsigned int type, unsigned int state), | 21 | TP_PROTO(unsigned int type, unsigned int state), |
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 4069c43f418..b50b9856c59 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h | |||
@@ -26,7 +26,7 @@ TRACE_EVENT(sched_kthread_stop, | |||
26 | __entry->pid = t->pid; | 26 | __entry->pid = t->pid; |
27 | ), | 27 | ), |
28 | 28 | ||
29 | TP_printk("task %s:%d", __entry->comm, __entry->pid) | 29 | TP_printk("comm=%s pid=%d", __entry->comm, __entry->pid) |
30 | ); | 30 | ); |
31 | 31 | ||
32 | /* | 32 | /* |
@@ -46,7 +46,7 @@ TRACE_EVENT(sched_kthread_stop_ret, | |||
46 | __entry->ret = ret; | 46 | __entry->ret = ret; |
47 | ), | 47 | ), |
48 | 48 | ||
49 | TP_printk("ret %d", __entry->ret) | 49 | TP_printk("ret=%d", __entry->ret) |
50 | ); | 50 | ); |
51 | 51 | ||
52 | /* | 52 | /* |
@@ -73,7 +73,7 @@ TRACE_EVENT(sched_wait_task, | |||
73 | __entry->prio = p->prio; | 73 | __entry->prio = p->prio; |
74 | ), | 74 | ), |
75 | 75 | ||
76 | TP_printk("task %s:%d [%d]", | 76 | TP_printk("comm=%s pid=%d prio=%d", |
77 | __entry->comm, __entry->pid, __entry->prio) | 77 | __entry->comm, __entry->pid, __entry->prio) |
78 | ); | 78 | ); |
79 | 79 | ||
@@ -94,7 +94,7 @@ TRACE_EVENT(sched_wakeup, | |||
94 | __field( pid_t, pid ) | 94 | __field( pid_t, pid ) |
95 | __field( int, prio ) | 95 | __field( int, prio ) |
96 | __field( int, success ) | 96 | __field( int, success ) |
97 | __field( int, cpu ) | 97 | __field( int, target_cpu ) |
98 | ), | 98 | ), |
99 | 99 | ||
100 | TP_fast_assign( | 100 | TP_fast_assign( |
@@ -102,12 +102,12 @@ TRACE_EVENT(sched_wakeup, | |||
102 | __entry->pid = p->pid; | 102 | __entry->pid = p->pid; |
103 | __entry->prio = p->prio; | 103 | __entry->prio = p->prio; |
104 | __entry->success = success; | 104 | __entry->success = success; |
105 | __entry->cpu = task_cpu(p); | 105 | __entry->target_cpu = task_cpu(p); |
106 | ), | 106 | ), |
107 | 107 | ||
108 | TP_printk("task %s:%d [%d] success=%d [%03d]", | 108 | TP_printk("comm=%s pid=%d prio=%d success=%d target_cpu=%03d", |
109 | __entry->comm, __entry->pid, __entry->prio, | 109 | __entry->comm, __entry->pid, __entry->prio, |
110 | __entry->success, __entry->cpu) | 110 | __entry->success, __entry->target_cpu) |
111 | ); | 111 | ); |
112 | 112 | ||
113 | /* | 113 | /* |
@@ -127,7 +127,7 @@ TRACE_EVENT(sched_wakeup_new, | |||
127 | __field( pid_t, pid ) | 127 | __field( pid_t, pid ) |
128 | __field( int, prio ) | 128 | __field( int, prio ) |
129 | __field( int, success ) | 129 | __field( int, success ) |
130 | __field( int, cpu ) | 130 | __field( int, target_cpu ) |
131 | ), | 131 | ), |
132 | 132 | ||
133 | TP_fast_assign( | 133 | TP_fast_assign( |
@@ -135,12 +135,12 @@ TRACE_EVENT(sched_wakeup_new, | |||
135 | __entry->pid = p->pid; | 135 | __entry->pid = p->pid; |
136 | __entry->prio = p->prio; | 136 | __entry->prio = p->prio; |
137 | __entry->success = success; | 137 | __entry->success = success; |
138 | __entry->cpu = task_cpu(p); | 138 | __entry->target_cpu = task_cpu(p); |
139 | ), | 139 | ), |
140 | 140 | ||
141 | TP_printk("task %s:%d [%d] success=%d [%03d]", | 141 | TP_printk("comm=%s pid=%d prio=%d success=%d target_cpu=%03d", |
142 | __entry->comm, __entry->pid, __entry->prio, | 142 | __entry->comm, __entry->pid, __entry->prio, |
143 | __entry->success, __entry->cpu) | 143 | __entry->success, __entry->target_cpu) |
144 | ); | 144 | ); |
145 | 145 | ||
146 | /* | 146 | /* |
@@ -176,7 +176,7 @@ TRACE_EVENT(sched_switch, | |||
176 | __entry->next_prio = next->prio; | 176 | __entry->next_prio = next->prio; |
177 | ), | 177 | ), |
178 | 178 | ||
179 | TP_printk("task %s:%d [%d] (%s) ==> %s:%d [%d]", | 179 | TP_printk("prev_comm=%s prev_pid=%d prev_prio=%d prev_state=%s ==> next_comm=%s next_pid=%d next_prio=%d", |
180 | __entry->prev_comm, __entry->prev_pid, __entry->prev_prio, | 180 | __entry->prev_comm, __entry->prev_pid, __entry->prev_prio, |
181 | __entry->prev_state ? | 181 | __entry->prev_state ? |
182 | __print_flags(__entry->prev_state, "|", | 182 | __print_flags(__entry->prev_state, "|", |
@@ -211,7 +211,7 @@ TRACE_EVENT(sched_migrate_task, | |||
211 | __entry->dest_cpu = dest_cpu; | 211 | __entry->dest_cpu = dest_cpu; |
212 | ), | 212 | ), |
213 | 213 | ||
214 | TP_printk("task %s:%d [%d] from: %d to: %d", | 214 | TP_printk("comm=%s pid=%d prio=%d orig_cpu=%d dest_cpu=%d", |
215 | __entry->comm, __entry->pid, __entry->prio, | 215 | __entry->comm, __entry->pid, __entry->prio, |
216 | __entry->orig_cpu, __entry->dest_cpu) | 216 | __entry->orig_cpu, __entry->dest_cpu) |
217 | ); | 217 | ); |
@@ -237,7 +237,7 @@ TRACE_EVENT(sched_process_free, | |||
237 | __entry->prio = p->prio; | 237 | __entry->prio = p->prio; |
238 | ), | 238 | ), |
239 | 239 | ||
240 | TP_printk("task %s:%d [%d]", | 240 | TP_printk("comm=%s pid=%d prio=%d", |
241 | __entry->comm, __entry->pid, __entry->prio) | 241 | __entry->comm, __entry->pid, __entry->prio) |
242 | ); | 242 | ); |
243 | 243 | ||
@@ -262,7 +262,7 @@ TRACE_EVENT(sched_process_exit, | |||
262 | __entry->prio = p->prio; | 262 | __entry->prio = p->prio; |
263 | ), | 263 | ), |
264 | 264 | ||
265 | TP_printk("task %s:%d [%d]", | 265 | TP_printk("comm=%s pid=%d prio=%d", |
266 | __entry->comm, __entry->pid, __entry->prio) | 266 | __entry->comm, __entry->pid, __entry->prio) |
267 | ); | 267 | ); |
268 | 268 | ||
@@ -287,7 +287,7 @@ TRACE_EVENT(sched_process_wait, | |||
287 | __entry->prio = current->prio; | 287 | __entry->prio = current->prio; |
288 | ), | 288 | ), |
289 | 289 | ||
290 | TP_printk("task %s:%d [%d]", | 290 | TP_printk("comm=%s pid=%d prio=%d", |
291 | __entry->comm, __entry->pid, __entry->prio) | 291 | __entry->comm, __entry->pid, __entry->prio) |
292 | ); | 292 | ); |
293 | 293 | ||
@@ -314,7 +314,7 @@ TRACE_EVENT(sched_process_fork, | |||
314 | __entry->child_pid = child->pid; | 314 | __entry->child_pid = child->pid; |
315 | ), | 315 | ), |
316 | 316 | ||
317 | TP_printk("parent %s:%d child %s:%d", | 317 | TP_printk("comm=%s pid=%d child_comm=%s child_pid=%d", |
318 | __entry->parent_comm, __entry->parent_pid, | 318 | __entry->parent_comm, __entry->parent_pid, |
319 | __entry->child_comm, __entry->child_pid) | 319 | __entry->child_comm, __entry->child_pid) |
320 | ); | 320 | ); |
@@ -340,7 +340,7 @@ TRACE_EVENT(sched_signal_send, | |||
340 | __entry->sig = sig; | 340 | __entry->sig = sig; |
341 | ), | 341 | ), |
342 | 342 | ||
343 | TP_printk("sig: %d task %s:%d", | 343 | TP_printk("sig=%d comm=%s pid=%d", |
344 | __entry->sig, __entry->comm, __entry->pid) | 344 | __entry->sig, __entry->comm, __entry->pid) |
345 | ); | 345 | ); |
346 | 346 | ||
@@ -374,7 +374,7 @@ TRACE_EVENT(sched_stat_wait, | |||
374 | __perf_count(delay); | 374 | __perf_count(delay); |
375 | ), | 375 | ), |
376 | 376 | ||
377 | TP_printk("task: %s:%d wait: %Lu [ns]", | 377 | TP_printk("comm=%s pid=%d delay=%Lu [ns]", |
378 | __entry->comm, __entry->pid, | 378 | __entry->comm, __entry->pid, |
379 | (unsigned long long)__entry->delay) | 379 | (unsigned long long)__entry->delay) |
380 | ); | 380 | ); |
@@ -406,7 +406,7 @@ TRACE_EVENT(sched_stat_runtime, | |||
406 | __perf_count(runtime); | 406 | __perf_count(runtime); |
407 | ), | 407 | ), |
408 | 408 | ||
409 | TP_printk("task: %s:%d runtime: %Lu [ns], vruntime: %Lu [ns]", | 409 | TP_printk("comm=%s pid=%d runtime=%Lu [ns] vruntime=%Lu [ns]", |
410 | __entry->comm, __entry->pid, | 410 | __entry->comm, __entry->pid, |
411 | (unsigned long long)__entry->runtime, | 411 | (unsigned long long)__entry->runtime, |
412 | (unsigned long long)__entry->vruntime) | 412 | (unsigned long long)__entry->vruntime) |
@@ -437,7 +437,7 @@ TRACE_EVENT(sched_stat_sleep, | |||
437 | __perf_count(delay); | 437 | __perf_count(delay); |
438 | ), | 438 | ), |
439 | 439 | ||
440 | TP_printk("task: %s:%d sleep: %Lu [ns]", | 440 | TP_printk("comm=%s pid=%d delay=%Lu [ns]", |
441 | __entry->comm, __entry->pid, | 441 | __entry->comm, __entry->pid, |
442 | (unsigned long long)__entry->delay) | 442 | (unsigned long long)__entry->delay) |
443 | ); | 443 | ); |
@@ -467,7 +467,7 @@ TRACE_EVENT(sched_stat_iowait, | |||
467 | __perf_count(delay); | 467 | __perf_count(delay); |
468 | ), | 468 | ), |
469 | 469 | ||
470 | TP_printk("task: %s:%d iowait: %Lu [ns]", | 470 | TP_printk("comm=%s pid=%d delay=%Lu [ns]", |
471 | __entry->comm, __entry->pid, | 471 | __entry->comm, __entry->pid, |
472 | (unsigned long long)__entry->delay) | 472 | (unsigned long long)__entry->delay) |
473 | ); | 473 | ); |
diff --git a/include/trace/events/timer.h b/include/trace/events/timer.h index 1844c48d640..e5ce87a0498 100644 --- a/include/trace/events/timer.h +++ b/include/trace/events/timer.h | |||
@@ -26,7 +26,7 @@ TRACE_EVENT(timer_init, | |||
26 | __entry->timer = timer; | 26 | __entry->timer = timer; |
27 | ), | 27 | ), |
28 | 28 | ||
29 | TP_printk("timer %p", __entry->timer) | 29 | TP_printk("timer=%p", __entry->timer) |
30 | ); | 30 | ); |
31 | 31 | ||
32 | /** | 32 | /** |
@@ -54,7 +54,7 @@ TRACE_EVENT(timer_start, | |||
54 | __entry->now = jiffies; | 54 | __entry->now = jiffies; |
55 | ), | 55 | ), |
56 | 56 | ||
57 | TP_printk("timer %p: func %pf, expires %lu, timeout %ld", | 57 | TP_printk("timer=%p function=%pf expires=%lu [timeout=%ld]", |
58 | __entry->timer, __entry->function, __entry->expires, | 58 | __entry->timer, __entry->function, __entry->expires, |
59 | (long)__entry->expires - __entry->now) | 59 | (long)__entry->expires - __entry->now) |
60 | ); | 60 | ); |
@@ -81,7 +81,7 @@ TRACE_EVENT(timer_expire_entry, | |||
81 | __entry->now = jiffies; | 81 | __entry->now = jiffies; |
82 | ), | 82 | ), |
83 | 83 | ||
84 | TP_printk("timer %p: now %lu", __entry->timer, __entry->now) | 84 | TP_printk("timer=%p now=%lu", __entry->timer, __entry->now) |
85 | ); | 85 | ); |
86 | 86 | ||
87 | /** | 87 | /** |
@@ -108,7 +108,7 @@ TRACE_EVENT(timer_expire_exit, | |||
108 | __entry->timer = timer; | 108 | __entry->timer = timer; |
109 | ), | 109 | ), |
110 | 110 | ||
111 | TP_printk("timer %p", __entry->timer) | 111 | TP_printk("timer=%p", __entry->timer) |
112 | ); | 112 | ); |
113 | 113 | ||
114 | /** | 114 | /** |
@@ -129,7 +129,7 @@ TRACE_EVENT(timer_cancel, | |||
129 | __entry->timer = timer; | 129 | __entry->timer = timer; |
130 | ), | 130 | ), |
131 | 131 | ||
132 | TP_printk("timer %p", __entry->timer) | 132 | TP_printk("timer=%p", __entry->timer) |
133 | ); | 133 | ); |
134 | 134 | ||
135 | /** | 135 | /** |
@@ -140,24 +140,24 @@ TRACE_EVENT(timer_cancel, | |||
140 | */ | 140 | */ |
141 | TRACE_EVENT(hrtimer_init, | 141 | TRACE_EVENT(hrtimer_init, |
142 | 142 | ||
143 | TP_PROTO(struct hrtimer *timer, clockid_t clockid, | 143 | TP_PROTO(struct hrtimer *hrtimer, clockid_t clockid, |
144 | enum hrtimer_mode mode), | 144 | enum hrtimer_mode mode), |
145 | 145 | ||
146 | TP_ARGS(timer, clockid, mode), | 146 | TP_ARGS(hrtimer, clockid, mode), |
147 | 147 | ||
148 | TP_STRUCT__entry( | 148 | TP_STRUCT__entry( |
149 | __field( void *, timer ) | 149 | __field( void *, hrtimer ) |
150 | __field( clockid_t, clockid ) | 150 | __field( clockid_t, clockid ) |
151 | __field( enum hrtimer_mode, mode ) | 151 | __field( enum hrtimer_mode, mode ) |
152 | ), | 152 | ), |
153 | 153 | ||
154 | TP_fast_assign( | 154 | TP_fast_assign( |
155 | __entry->timer = timer; | 155 | __entry->hrtimer = hrtimer; |
156 | __entry->clockid = clockid; | 156 | __entry->clockid = clockid; |
157 | __entry->mode = mode; | 157 | __entry->mode = mode; |
158 | ), | 158 | ), |
159 | 159 | ||
160 | TP_printk("hrtimer %p, clockid %s, mode %s", __entry->timer, | 160 | TP_printk("hrtimer=%p clockid=%s mode=%s", __entry->hrtimer, |
161 | __entry->clockid == CLOCK_REALTIME ? | 161 | __entry->clockid == CLOCK_REALTIME ? |
162 | "CLOCK_REALTIME" : "CLOCK_MONOTONIC", | 162 | "CLOCK_REALTIME" : "CLOCK_MONOTONIC", |
163 | __entry->mode == HRTIMER_MODE_ABS ? | 163 | __entry->mode == HRTIMER_MODE_ABS ? |
@@ -170,26 +170,26 @@ TRACE_EVENT(hrtimer_init, | |||
170 | */ | 170 | */ |
171 | TRACE_EVENT(hrtimer_start, | 171 | TRACE_EVENT(hrtimer_start, |
172 | 172 | ||
173 | TP_PROTO(struct hrtimer *timer), | 173 | TP_PROTO(struct hrtimer *hrtimer), |
174 | 174 | ||
175 | TP_ARGS(timer), | 175 | TP_ARGS(hrtimer), |
176 | 176 | ||
177 | TP_STRUCT__entry( | 177 | TP_STRUCT__entry( |
178 | __field( void *, timer ) | 178 | __field( void *, hrtimer ) |
179 | __field( void *, function ) | 179 | __field( void *, function ) |
180 | __field( s64, expires ) | 180 | __field( s64, expires ) |
181 | __field( s64, softexpires ) | 181 | __field( s64, softexpires ) |
182 | ), | 182 | ), |
183 | 183 | ||
184 | TP_fast_assign( | 184 | TP_fast_assign( |
185 | __entry->timer = timer; | 185 | __entry->hrtimer = hrtimer; |
186 | __entry->function = timer->function; | 186 | __entry->function = hrtimer->function; |
187 | __entry->expires = hrtimer_get_expires(timer).tv64; | 187 | __entry->expires = hrtimer_get_expires(hrtimer).tv64; |
188 | __entry->softexpires = hrtimer_get_softexpires(timer).tv64; | 188 | __entry->softexpires = hrtimer_get_softexpires(hrtimer).tv64; |
189 | ), | 189 | ), |
190 | 190 | ||
191 | TP_printk("hrtimer %p, func %pf, expires %llu, softexpires %llu", | 191 | TP_printk("hrtimer=%p function=%pf expires=%llu softexpires=%llu", |
192 | __entry->timer, __entry->function, | 192 | __entry->hrtimer, __entry->function, |
193 | (unsigned long long)ktime_to_ns((ktime_t) { | 193 | (unsigned long long)ktime_to_ns((ktime_t) { |
194 | .tv64 = __entry->expires }), | 194 | .tv64 = __entry->expires }), |
195 | (unsigned long long)ktime_to_ns((ktime_t) { | 195 | (unsigned long long)ktime_to_ns((ktime_t) { |
@@ -206,23 +206,22 @@ TRACE_EVENT(hrtimer_start, | |||
206 | */ | 206 | */ |
207 | TRACE_EVENT(hrtimer_expire_entry, | 207 | TRACE_EVENT(hrtimer_expire_entry, |
208 | 208 | ||
209 | TP_PROTO(struct hrtimer *timer, ktime_t *now), | 209 | TP_PROTO(struct hrtimer *hrtimer, ktime_t *now), |
210 | 210 | ||
211 | TP_ARGS(timer, now), | 211 | TP_ARGS(hrtimer, now), |
212 | 212 | ||
213 | TP_STRUCT__entry( | 213 | TP_STRUCT__entry( |
214 | __field( void *, timer ) | 214 | __field( void *, hrtimer ) |
215 | __field( s64, now ) | 215 | __field( s64, now ) |
216 | ), | 216 | ), |
217 | 217 | ||
218 | TP_fast_assign( | 218 | TP_fast_assign( |
219 | __entry->timer = timer; | 219 | __entry->hrtimer = hrtimer; |
220 | __entry->now = now->tv64; | 220 | __entry->now = now->tv64; |
221 | ), | 221 | ), |
222 | 222 | ||
223 | TP_printk("hrtimer %p, now %llu", __entry->timer, | 223 | TP_printk("hrtimer=%p now=%llu", __entry->hrtimer, |
224 | (unsigned long long)ktime_to_ns((ktime_t) { | 224 | (unsigned long long)ktime_to_ns((ktime_t) { .tv64 = __entry->now })) |
225 | .tv64 = __entry->now })) | ||
226 | ); | 225 | ); |
227 | 226 | ||
228 | /** | 227 | /** |
@@ -234,40 +233,40 @@ TRACE_EVENT(hrtimer_expire_entry, | |||
234 | */ | 233 | */ |
235 | TRACE_EVENT(hrtimer_expire_exit, | 234 | TRACE_EVENT(hrtimer_expire_exit, |
236 | 235 | ||
237 | TP_PROTO(struct hrtimer *timer), | 236 | TP_PROTO(struct hrtimer *hrtimer), |
238 | 237 | ||
239 | TP_ARGS(timer), | 238 | TP_ARGS(hrtimer), |
240 | 239 | ||
241 | TP_STRUCT__entry( | 240 | TP_STRUCT__entry( |
242 | __field( void *, timer ) | 241 | __field( void *, hrtimer ) |
243 | ), | 242 | ), |
244 | 243 | ||
245 | TP_fast_assign( | 244 | TP_fast_assign( |
246 | __entry->timer = timer; | 245 | __entry->hrtimer = hrtimer; |
247 | ), | 246 | ), |
248 | 247 | ||
249 | TP_printk("hrtimer %p", __entry->timer) | 248 | TP_printk("hrtimer=%p", __entry->hrtimer) |
250 | ); | 249 | ); |
251 | 250 | ||
252 | /** | 251 | /** |
253 | * hrtimer_cancel - called when the hrtimer is canceled | 252 | * hrtimer_cancel - called when the hrtimer is canceled |
254 | * @timer: pointer to struct hrtimer | 253 | * @hrtimer: pointer to struct hrtimer |
255 | */ | 254 | */ |
256 | TRACE_EVENT(hrtimer_cancel, | 255 | TRACE_EVENT(hrtimer_cancel, |
257 | 256 | ||
258 | TP_PROTO(struct hrtimer *timer), | 257 | TP_PROTO(struct hrtimer *hrtimer), |
259 | 258 | ||
260 | TP_ARGS(timer), | 259 | TP_ARGS(hrtimer), |
261 | 260 | ||
262 | TP_STRUCT__entry( | 261 | TP_STRUCT__entry( |
263 | __field( void *, timer ) | 262 | __field( void *, hrtimer ) |
264 | ), | 263 | ), |
265 | 264 | ||
266 | TP_fast_assign( | 265 | TP_fast_assign( |
267 | __entry->timer = timer; | 266 | __entry->hrtimer = hrtimer; |
268 | ), | 267 | ), |
269 | 268 | ||
270 | TP_printk("hrtimer %p", __entry->timer) | 269 | TP_printk("hrtimer=%p", __entry->hrtimer) |
271 | ); | 270 | ); |
272 | 271 | ||
273 | /** | 272 | /** |
@@ -302,7 +301,7 @@ TRACE_EVENT(itimer_state, | |||
302 | __entry->interval_usec = value->it_interval.tv_usec; | 301 | __entry->interval_usec = value->it_interval.tv_usec; |
303 | ), | 302 | ), |
304 | 303 | ||
305 | TP_printk("which %d, expires %lu, it_value %lu.%lu, it_interval %lu.%lu", | 304 | TP_printk("which=%d expires=%lu it_value=%lu.%lu it_interval=%lu.%lu", |
306 | __entry->which, __entry->expires, | 305 | __entry->which, __entry->expires, |
307 | __entry->value_sec, __entry->value_usec, | 306 | __entry->value_sec, __entry->value_usec, |
308 | __entry->interval_sec, __entry->interval_usec) | 307 | __entry->interval_sec, __entry->interval_usec) |
@@ -332,7 +331,7 @@ TRACE_EVENT(itimer_expire, | |||
332 | __entry->pid = pid_nr(pid); | 331 | __entry->pid = pid_nr(pid); |
333 | ), | 332 | ), |
334 | 333 | ||
335 | TP_printk("which %d, pid %d, now %lu", __entry->which, | 334 | TP_printk("which=%d pid=%d now=%lu", __entry->which, |
336 | (int) __entry->pid, __entry->now) | 335 | (int) __entry->pid, __entry->now) |
337 | ); | 336 | ); |
338 | 337 | ||
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index cc0d9667e18..c9bbcab95fb 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h | |||
@@ -120,9 +120,10 @@ | |||
120 | #undef __field | 120 | #undef __field |
121 | #define __field(type, item) \ | 121 | #define __field(type, item) \ |
122 | ret = trace_seq_printf(s, "\tfield:" #type " " #item ";\t" \ | 122 | ret = trace_seq_printf(s, "\tfield:" #type " " #item ";\t" \ |
123 | "offset:%u;\tsize:%u;\n", \ | 123 | "offset:%u;\tsize:%u;\tsigned:%u;\n", \ |
124 | (unsigned int)offsetof(typeof(field), item), \ | 124 | (unsigned int)offsetof(typeof(field), item), \ |
125 | (unsigned int)sizeof(field.item)); \ | 125 | (unsigned int)sizeof(field.item), \ |
126 | (unsigned int)is_signed_type(type)); \ | ||
126 | if (!ret) \ | 127 | if (!ret) \ |
127 | return 0; | 128 | return 0; |
128 | 129 | ||
@@ -132,19 +133,21 @@ | |||
132 | #undef __array | 133 | #undef __array |
133 | #define __array(type, item, len) \ | 134 | #define __array(type, item, len) \ |
134 | ret = trace_seq_printf(s, "\tfield:" #type " " #item "[" #len "];\t" \ | 135 | ret = trace_seq_printf(s, "\tfield:" #type " " #item "[" #len "];\t" \ |
135 | "offset:%u;\tsize:%u;\n", \ | 136 | "offset:%u;\tsize:%u;\tsigned:%u;\n", \ |
136 | (unsigned int)offsetof(typeof(field), item), \ | 137 | (unsigned int)offsetof(typeof(field), item), \ |
137 | (unsigned int)sizeof(field.item)); \ | 138 | (unsigned int)sizeof(field.item), \ |
139 | (unsigned int)is_signed_type(type)); \ | ||
138 | if (!ret) \ | 140 | if (!ret) \ |
139 | return 0; | 141 | return 0; |
140 | 142 | ||
141 | #undef __dynamic_array | 143 | #undef __dynamic_array |
142 | #define __dynamic_array(type, item, len) \ | 144 | #define __dynamic_array(type, item, len) \ |
143 | ret = trace_seq_printf(s, "\tfield:__data_loc " #type "[] " #item ";\t"\ | 145 | ret = trace_seq_printf(s, "\tfield:__data_loc " #type "[] " #item ";\t"\ |
144 | "offset:%u;\tsize:%u;\n", \ | 146 | "offset:%u;\tsize:%u;\tsigned:%u;\n", \ |
145 | (unsigned int)offsetof(typeof(field), \ | 147 | (unsigned int)offsetof(typeof(field), \ |
146 | __data_loc_##item), \ | 148 | __data_loc_##item), \ |
147 | (unsigned int)sizeof(field.__data_loc_##item)); \ | 149 | (unsigned int)sizeof(field.__data_loc_##item), \ |
150 | (unsigned int)is_signed_type(type)); \ | ||
148 | if (!ret) \ | 151 | if (!ret) \ |
149 | return 0; | 152 | return 0; |
150 | 153 | ||
diff --git a/include/trace/syscall.h b/include/trace/syscall.h index 5dc283ba5ae..e972f0a40f8 100644 --- a/include/trace/syscall.h +++ b/include/trace/syscall.h | |||
@@ -33,7 +33,7 @@ struct syscall_metadata { | |||
33 | }; | 33 | }; |
34 | 34 | ||
35 | #ifdef CONFIG_FTRACE_SYSCALLS | 35 | #ifdef CONFIG_FTRACE_SYSCALLS |
36 | extern struct syscall_metadata *syscall_nr_to_meta(int nr); | 36 | extern unsigned long arch_syscall_addr(int nr); |
37 | extern int syscall_name_to_nr(char *name); | 37 | extern int syscall_name_to_nr(char *name); |
38 | void set_syscall_enter_id(int num, int id); | 38 | void set_syscall_enter_id(int num, int id); |
39 | void set_syscall_exit_id(int num, int id); | 39 | void set_syscall_exit_id(int num, int id); |