diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/drm/ttm/ttm_bo_driver.h | 2 | ||||
-rw-r--r-- | include/linux/acpi.h | 11 | ||||
-rw-r--r-- | include/linux/cred.h | 9 | ||||
-rw-r--r-- | include/linux/ftrace_event.h | 34 | ||||
-rw-r--r-- | include/linux/i2c.h | 12 | ||||
-rw-r--r-- | include/linux/i2c/s6000.h | 10 | ||||
-rw-r--r-- | include/linux/mount.h | 9 | ||||
-rw-r--r-- | include/linux/nsproxy.h | 16 | ||||
-rw-r--r-- | include/linux/pid_namespace.h | 1 | ||||
-rw-r--r-- | include/linux/sched.h | 6 | ||||
-rw-r--r-- | include/linux/signal.h | 15 | ||||
-rw-r--r-- | include/linux/sunrpc/svc.h | 4 | ||||
-rw-r--r-- | include/linux/sunrpc/svc_rdma.h | 3 | ||||
-rw-r--r-- | include/linux/sunrpc/svc_xprt.h | 2 | ||||
-rw-r--r-- | include/linux/tracehook.h | 8 | ||||
-rw-r--r-- | include/linux/tracepoint.h | 44 | ||||
-rw-r--r-- | include/net/netlabel.h | 8 | ||||
-rw-r--r-- | include/trace/events/ipi.h | 89 | ||||
-rw-r--r-- | include/uapi/drm/nouveau_drm.h | 11 |
19 files changed, 208 insertions, 86 deletions
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h index 202f0a7171e8..1d9f0f1ff52d 100644 --- a/include/drm/ttm/ttm_bo_driver.h +++ b/include/drm/ttm/ttm_bo_driver.h | |||
@@ -133,6 +133,7 @@ struct ttm_tt { | |||
133 | * struct ttm_dma_tt | 133 | * struct ttm_dma_tt |
134 | * | 134 | * |
135 | * @ttm: Base ttm_tt struct. | 135 | * @ttm: Base ttm_tt struct. |
136 | * @cpu_address: The CPU address of the pages | ||
136 | * @dma_address: The DMA (bus) addresses of the pages | 137 | * @dma_address: The DMA (bus) addresses of the pages |
137 | * @pages_list: used by some page allocation backend | 138 | * @pages_list: used by some page allocation backend |
138 | * | 139 | * |
@@ -142,6 +143,7 @@ struct ttm_tt { | |||
142 | */ | 143 | */ |
143 | struct ttm_dma_tt { | 144 | struct ttm_dma_tt { |
144 | struct ttm_tt ttm; | 145 | struct ttm_tt ttm; |
146 | void **cpu_address; | ||
145 | dma_addr_t *dma_address; | 147 | dma_addr_t *dma_address; |
146 | struct list_head pages_list; | 148 | struct list_head pages_list; |
147 | }; | 149 | }; |
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 5320153c311b..807cbc46d73e 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
@@ -364,6 +364,17 @@ extern bool osc_sb_apei_support_acked; | |||
364 | #define OSC_PCI_EXPRESS_CAPABILITY_CONTROL 0x00000010 | 364 | #define OSC_PCI_EXPRESS_CAPABILITY_CONTROL 0x00000010 |
365 | #define OSC_PCI_CONTROL_MASKS 0x0000001f | 365 | #define OSC_PCI_CONTROL_MASKS 0x0000001f |
366 | 366 | ||
367 | #define ACPI_GSB_ACCESS_ATTRIB_QUICK 0x00000002 | ||
368 | #define ACPI_GSB_ACCESS_ATTRIB_SEND_RCV 0x00000004 | ||
369 | #define ACPI_GSB_ACCESS_ATTRIB_BYTE 0x00000006 | ||
370 | #define ACPI_GSB_ACCESS_ATTRIB_WORD 0x00000008 | ||
371 | #define ACPI_GSB_ACCESS_ATTRIB_BLOCK 0x0000000A | ||
372 | #define ACPI_GSB_ACCESS_ATTRIB_MULTIBYTE 0x0000000B | ||
373 | #define ACPI_GSB_ACCESS_ATTRIB_WORD_CALL 0x0000000C | ||
374 | #define ACPI_GSB_ACCESS_ATTRIB_BLOCK_CALL 0x0000000D | ||
375 | #define ACPI_GSB_ACCESS_ATTRIB_RAW_BYTES 0x0000000E | ||
376 | #define ACPI_GSB_ACCESS_ATTRIB_RAW_PROCESS 0x0000000F | ||
377 | |||
367 | extern acpi_status acpi_pci_osc_control_set(acpi_handle handle, | 378 | extern acpi_status acpi_pci_osc_control_set(acpi_handle handle, |
368 | u32 *mask, u32 req); | 379 | u32 *mask, u32 req); |
369 | 380 | ||
diff --git a/include/linux/cred.h b/include/linux/cred.h index f61d6c8f5ef3..b2d0820837c4 100644 --- a/include/linux/cred.h +++ b/include/linux/cred.h | |||
@@ -259,6 +259,15 @@ static inline void put_cred(const struct cred *_cred) | |||
259 | rcu_dereference_protected(current->cred, 1) | 259 | rcu_dereference_protected(current->cred, 1) |
260 | 260 | ||
261 | /** | 261 | /** |
262 | * current_real_cred - Access the current task's objective credentials | ||
263 | * | ||
264 | * Access the objective credentials of the current task. RCU-safe, | ||
265 | * since nobody else can modify it. | ||
266 | */ | ||
267 | #define current_real_cred() \ | ||
268 | rcu_dereference_protected(current->real_cred, 1) | ||
269 | |||
270 | /** | ||
262 | * __task_cred - Access a task's objective credentials | 271 | * __task_cred - Access a task's objective credentials |
263 | * @task: The task to query | 272 | * @task: The task to query |
264 | * | 273 | * |
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h index 06c6faa9e5cc..28672e87e910 100644 --- a/include/linux/ftrace_event.h +++ b/include/linux/ftrace_event.h | |||
@@ -571,40 +571,6 @@ do { \ | |||
571 | __trace_printk(ip, fmt, ##args); \ | 571 | __trace_printk(ip, fmt, ##args); \ |
572 | } while (0) | 572 | } while (0) |
573 | 573 | ||
574 | /** | ||
575 | * tracepoint_string - register constant persistent string to trace system | ||
576 | * @str - a constant persistent string that will be referenced in tracepoints | ||
577 | * | ||
578 | * If constant strings are being used in tracepoints, it is faster and | ||
579 | * more efficient to just save the pointer to the string and reference | ||
580 | * that with a printf "%s" instead of saving the string in the ring buffer | ||
581 | * and wasting space and time. | ||
582 | * | ||
583 | * The problem with the above approach is that userspace tools that read | ||
584 | * the binary output of the trace buffers do not have access to the string. | ||
585 | * Instead they just show the address of the string which is not very | ||
586 | * useful to users. | ||
587 | * | ||
588 | * With tracepoint_string(), the string will be registered to the tracing | ||
589 | * system and exported to userspace via the debugfs/tracing/printk_formats | ||
590 | * file that maps the string address to the string text. This way userspace | ||
591 | * tools that read the binary buffers have a way to map the pointers to | ||
592 | * the ASCII strings they represent. | ||
593 | * | ||
594 | * The @str used must be a constant string and persistent as it would not | ||
595 | * make sense to show a string that no longer exists. But it is still fine | ||
596 | * to be used with modules, because when modules are unloaded, if they | ||
597 | * had tracepoints, the ring buffers are cleared too. As long as the string | ||
598 | * does not change during the life of the module, it is fine to use | ||
599 | * tracepoint_string() within a module. | ||
600 | */ | ||
601 | #define tracepoint_string(str) \ | ||
602 | ({ \ | ||
603 | static const char *___tp_str __tracepoint_string = str; \ | ||
604 | ___tp_str; \ | ||
605 | }) | ||
606 | #define __tracepoint_string __attribute__((section("__tracepoint_str"))) | ||
607 | |||
608 | #ifdef CONFIG_PERF_EVENTS | 574 | #ifdef CONFIG_PERF_EVENTS |
609 | struct perf_event; | 575 | struct perf_event; |
610 | 576 | ||
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index b556e0ab946f..ea507665896c 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
@@ -577,4 +577,16 @@ static inline struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node | |||
577 | } | 577 | } |
578 | #endif /* CONFIG_OF */ | 578 | #endif /* CONFIG_OF */ |
579 | 579 | ||
580 | #ifdef CONFIG_I2C_ACPI | ||
581 | int acpi_i2c_install_space_handler(struct i2c_adapter *adapter); | ||
582 | void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter); | ||
583 | void acpi_i2c_register_devices(struct i2c_adapter *adap); | ||
584 | #else | ||
585 | static inline void acpi_i2c_register_devices(struct i2c_adapter *adap) { } | ||
586 | static inline void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter) | ||
587 | { } | ||
588 | static inline int acpi_i2c_install_space_handler(struct i2c_adapter *adapter) | ||
589 | { return 0; } | ||
590 | #endif | ||
591 | |||
580 | #endif /* _LINUX_I2C_H */ | 592 | #endif /* _LINUX_I2C_H */ |
diff --git a/include/linux/i2c/s6000.h b/include/linux/i2c/s6000.h deleted file mode 100644 index d9b34bfdae76..000000000000 --- a/include/linux/i2c/s6000.h +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | #ifndef __LINUX_I2C_S6000_H | ||
2 | #define __LINUX_I2C_S6000_H | ||
3 | |||
4 | struct s6_i2c_platform_data { | ||
5 | const char *clock; /* the clock to use */ | ||
6 | int bus_num; /* the bus number to register */ | ||
7 | }; | ||
8 | |||
9 | #endif | ||
10 | |||
diff --git a/include/linux/mount.h b/include/linux/mount.h index 839bac270904..b0c1e6574e7f 100644 --- a/include/linux/mount.h +++ b/include/linux/mount.h | |||
@@ -42,13 +42,20 @@ struct mnt_namespace; | |||
42 | * flag, consider how it interacts with shared mounts. | 42 | * flag, consider how it interacts with shared mounts. |
43 | */ | 43 | */ |
44 | #define MNT_SHARED_MASK (MNT_UNBINDABLE) | 44 | #define MNT_SHARED_MASK (MNT_UNBINDABLE) |
45 | #define MNT_PROPAGATION_MASK (MNT_SHARED | MNT_UNBINDABLE) | 45 | #define MNT_USER_SETTABLE_MASK (MNT_NOSUID | MNT_NODEV | MNT_NOEXEC \ |
46 | | MNT_NOATIME | MNT_NODIRATIME | MNT_RELATIME \ | ||
47 | | MNT_READONLY) | ||
48 | #define MNT_ATIME_MASK (MNT_NOATIME | MNT_NODIRATIME | MNT_RELATIME ) | ||
46 | 49 | ||
47 | #define MNT_INTERNAL_FLAGS (MNT_SHARED | MNT_WRITE_HOLD | MNT_INTERNAL | \ | 50 | #define MNT_INTERNAL_FLAGS (MNT_SHARED | MNT_WRITE_HOLD | MNT_INTERNAL | \ |
48 | MNT_DOOMED | MNT_SYNC_UMOUNT | MNT_MARKED) | 51 | MNT_DOOMED | MNT_SYNC_UMOUNT | MNT_MARKED) |
49 | 52 | ||
50 | #define MNT_INTERNAL 0x4000 | 53 | #define MNT_INTERNAL 0x4000 |
51 | 54 | ||
55 | #define MNT_LOCK_ATIME 0x040000 | ||
56 | #define MNT_LOCK_NOEXEC 0x080000 | ||
57 | #define MNT_LOCK_NOSUID 0x100000 | ||
58 | #define MNT_LOCK_NODEV 0x200000 | ||
52 | #define MNT_LOCK_READONLY 0x400000 | 59 | #define MNT_LOCK_READONLY 0x400000 |
53 | #define MNT_LOCKED 0x800000 | 60 | #define MNT_LOCKED 0x800000 |
54 | #define MNT_DOOMED 0x1000000 | 61 | #define MNT_DOOMED 0x1000000 |
diff --git a/include/linux/nsproxy.h b/include/linux/nsproxy.h index b4ec59d159ac..35fa08fd7739 100644 --- a/include/linux/nsproxy.h +++ b/include/linux/nsproxy.h | |||
@@ -40,32 +40,28 @@ extern struct nsproxy init_nsproxy; | |||
40 | * the namespaces access rules are: | 40 | * the namespaces access rules are: |
41 | * | 41 | * |
42 | * 1. only current task is allowed to change tsk->nsproxy pointer or | 42 | * 1. only current task is allowed to change tsk->nsproxy pointer or |
43 | * any pointer on the nsproxy itself | 43 | * any pointer on the nsproxy itself. Current must hold the task_lock |
44 | * when changing tsk->nsproxy. | ||
44 | * | 45 | * |
45 | * 2. when accessing (i.e. reading) current task's namespaces - no | 46 | * 2. when accessing (i.e. reading) current task's namespaces - no |
46 | * precautions should be taken - just dereference the pointers | 47 | * precautions should be taken - just dereference the pointers |
47 | * | 48 | * |
48 | * 3. the access to other task namespaces is performed like this | 49 | * 3. the access to other task namespaces is performed like this |
49 | * rcu_read_lock(); | 50 | * task_lock(task); |
50 | * nsproxy = task_nsproxy(tsk); | 51 | * nsproxy = task->nsproxy; |
51 | * if (nsproxy != NULL) { | 52 | * if (nsproxy != NULL) { |
52 | * / * | 53 | * / * |
53 | * * work with the namespaces here | 54 | * * work with the namespaces here |
54 | * * e.g. get the reference on one of them | 55 | * * e.g. get the reference on one of them |
55 | * * / | 56 | * * / |
56 | * } / * | 57 | * } / * |
57 | * * NULL task_nsproxy() means that this task is | 58 | * * NULL task->nsproxy means that this task is |
58 | * * almost dead (zombie) | 59 | * * almost dead (zombie) |
59 | * * / | 60 | * * / |
60 | * rcu_read_unlock(); | 61 | * task_unlock(task); |
61 | * | 62 | * |
62 | */ | 63 | */ |
63 | 64 | ||
64 | static inline struct nsproxy *task_nsproxy(struct task_struct *tsk) | ||
65 | { | ||
66 | return rcu_dereference(tsk->nsproxy); | ||
67 | } | ||
68 | |||
69 | int copy_namespaces(unsigned long flags, struct task_struct *tsk); | 65 | int copy_namespaces(unsigned long flags, struct task_struct *tsk); |
70 | void exit_task_namespaces(struct task_struct *tsk); | 66 | void exit_task_namespaces(struct task_struct *tsk); |
71 | void switch_task_namespaces(struct task_struct *tsk, struct nsproxy *new); | 67 | void switch_task_namespaces(struct task_struct *tsk, struct nsproxy *new); |
diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h index 7246ef3d4455..1997ffc295a7 100644 --- a/include/linux/pid_namespace.h +++ b/include/linux/pid_namespace.h | |||
@@ -33,6 +33,7 @@ struct pid_namespace { | |||
33 | #ifdef CONFIG_PROC_FS | 33 | #ifdef CONFIG_PROC_FS |
34 | struct vfsmount *proc_mnt; | 34 | struct vfsmount *proc_mnt; |
35 | struct dentry *proc_self; | 35 | struct dentry *proc_self; |
36 | struct dentry *proc_thread_self; | ||
36 | #endif | 37 | #endif |
37 | #ifdef CONFIG_BSD_PROCESS_ACCT | 38 | #ifdef CONFIG_BSD_PROCESS_ACCT |
38 | struct bsd_acct_struct *bacct; | 39 | struct bsd_acct_struct *bacct; |
diff --git a/include/linux/sched.h b/include/linux/sched.h index db2f6474e95e..857ba40426ba 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -2360,8 +2360,10 @@ static inline int on_sig_stack(unsigned long sp) | |||
2360 | 2360 | ||
2361 | static inline int sas_ss_flags(unsigned long sp) | 2361 | static inline int sas_ss_flags(unsigned long sp) |
2362 | { | 2362 | { |
2363 | return (current->sas_ss_size == 0 ? SS_DISABLE | 2363 | if (!current->sas_ss_size) |
2364 | : on_sig_stack(sp) ? SS_ONSTACK : 0); | 2364 | return SS_DISABLE; |
2365 | |||
2366 | return on_sig_stack(sp) ? SS_ONSTACK : 0; | ||
2365 | } | 2367 | } |
2366 | 2368 | ||
2367 | static inline unsigned long sigsp(unsigned long sp, struct ksignal *ksig) | 2369 | static inline unsigned long sigsp(unsigned long sp, struct ksignal *ksig) |
diff --git a/include/linux/signal.h b/include/linux/signal.h index c9e65360c49a..750196fcc0a5 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h | |||
@@ -280,9 +280,8 @@ struct ksignal { | |||
280 | int sig; | 280 | int sig; |
281 | }; | 281 | }; |
282 | 282 | ||
283 | extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, struct pt_regs *regs, void *cookie); | 283 | extern int get_signal(struct ksignal *ksig); |
284 | extern void signal_setup_done(int failed, struct ksignal *ksig, int stepping); | 284 | extern void signal_setup_done(int failed, struct ksignal *ksig, int stepping); |
285 | extern void signal_delivered(int sig, siginfo_t *info, struct k_sigaction *ka, struct pt_regs *regs, int stepping); | ||
286 | extern void exit_signals(struct task_struct *tsk); | 285 | extern void exit_signals(struct task_struct *tsk); |
287 | extern void kernel_sigaction(int, __sighandler_t); | 286 | extern void kernel_sigaction(int, __sighandler_t); |
288 | 287 | ||
@@ -301,18 +300,6 @@ static inline void disallow_signal(int sig) | |||
301 | kernel_sigaction(sig, SIG_IGN); | 300 | kernel_sigaction(sig, SIG_IGN); |
302 | } | 301 | } |
303 | 302 | ||
304 | /* | ||
305 | * Eventually that'll replace get_signal_to_deliver(); macro for now, | ||
306 | * to avoid nastiness with include order. | ||
307 | */ | ||
308 | #define get_signal(ksig) \ | ||
309 | ({ \ | ||
310 | struct ksignal *p = (ksig); \ | ||
311 | p->sig = get_signal_to_deliver(&p->info, &p->ka, \ | ||
312 | signal_pt_regs(), NULL);\ | ||
313 | p->sig > 0; \ | ||
314 | }) | ||
315 | |||
316 | extern struct kmem_cache *sighand_cachep; | 303 | extern struct kmem_cache *sighand_cachep; |
317 | 304 | ||
318 | int unhandled_signal(struct task_struct *tsk, int sig); | 305 | int unhandled_signal(struct task_struct *tsk, int sig); |
diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h index 1bc7cd05b22e..cf61ecd148e0 100644 --- a/include/linux/sunrpc/svc.h +++ b/include/linux/sunrpc/svc.h | |||
@@ -236,7 +236,7 @@ struct svc_rqst { | |||
236 | struct svc_cred rq_cred; /* auth info */ | 236 | struct svc_cred rq_cred; /* auth info */ |
237 | void * rq_xprt_ctxt; /* transport specific context ptr */ | 237 | void * rq_xprt_ctxt; /* transport specific context ptr */ |
238 | struct svc_deferred_req*rq_deferred; /* deferred request we are replaying */ | 238 | struct svc_deferred_req*rq_deferred; /* deferred request we are replaying */ |
239 | int rq_usedeferral; /* use deferral */ | 239 | bool rq_usedeferral; /* use deferral */ |
240 | 240 | ||
241 | size_t rq_xprt_hlen; /* xprt header len */ | 241 | size_t rq_xprt_hlen; /* xprt header len */ |
242 | struct xdr_buf rq_arg; | 242 | struct xdr_buf rq_arg; |
@@ -277,7 +277,7 @@ struct svc_rqst { | |||
277 | struct auth_domain * rq_gssclient; /* "gss/"-style peer info */ | 277 | struct auth_domain * rq_gssclient; /* "gss/"-style peer info */ |
278 | int rq_cachetype; | 278 | int rq_cachetype; |
279 | struct svc_cacherep * rq_cacherep; /* cache info */ | 279 | struct svc_cacherep * rq_cacherep; /* cache info */ |
280 | int rq_splice_ok; /* turned off in gss privacy | 280 | bool rq_splice_ok; /* turned off in gss privacy |
281 | * to prevent encrypting page | 281 | * to prevent encrypting page |
282 | * cache pages */ | 282 | * cache pages */ |
283 | wait_queue_head_t rq_wait; /* synchronization */ | 283 | wait_queue_head_t rq_wait; /* synchronization */ |
diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h index 5cf99a016368..975da754c778 100644 --- a/include/linux/sunrpc/svc_rdma.h +++ b/include/linux/sunrpc/svc_rdma.h | |||
@@ -174,8 +174,7 @@ struct svcxprt_rdma { | |||
174 | * page size of 4k, or 32k * 2 ops / 4k = 16 outstanding RDMA_READ. */ | 174 | * page size of 4k, or 32k * 2 ops / 4k = 16 outstanding RDMA_READ. */ |
175 | #define RPCRDMA_ORD (64/4) | 175 | #define RPCRDMA_ORD (64/4) |
176 | #define RPCRDMA_SQ_DEPTH_MULT 8 | 176 | #define RPCRDMA_SQ_DEPTH_MULT 8 |
177 | #define RPCRDMA_MAX_THREADS 16 | 177 | #define RPCRDMA_MAX_REQUESTS 32 |
178 | #define RPCRDMA_MAX_REQUESTS 16 | ||
179 | #define RPCRDMA_MAX_REQ_SIZE 4096 | 178 | #define RPCRDMA_MAX_REQ_SIZE 4096 |
180 | 179 | ||
181 | /* svc_rdma_marshal.c */ | 180 | /* svc_rdma_marshal.c */ |
diff --git a/include/linux/sunrpc/svc_xprt.h b/include/linux/sunrpc/svc_xprt.h index 7235040a19b2..ce6e4182a5b2 100644 --- a/include/linux/sunrpc/svc_xprt.h +++ b/include/linux/sunrpc/svc_xprt.h | |||
@@ -25,6 +25,7 @@ struct svc_xprt_ops { | |||
25 | void (*xpo_detach)(struct svc_xprt *); | 25 | void (*xpo_detach)(struct svc_xprt *); |
26 | void (*xpo_free)(struct svc_xprt *); | 26 | void (*xpo_free)(struct svc_xprt *); |
27 | int (*xpo_secure_port)(struct svc_rqst *); | 27 | int (*xpo_secure_port)(struct svc_rqst *); |
28 | void (*xpo_adjust_wspace)(struct svc_xprt *); | ||
28 | }; | 29 | }; |
29 | 30 | ||
30 | struct svc_xprt_class { | 31 | struct svc_xprt_class { |
@@ -33,6 +34,7 @@ struct svc_xprt_class { | |||
33 | struct svc_xprt_ops *xcl_ops; | 34 | struct svc_xprt_ops *xcl_ops; |
34 | struct list_head xcl_list; | 35 | struct list_head xcl_list; |
35 | u32 xcl_max_payload; | 36 | u32 xcl_max_payload; |
37 | int xcl_ident; | ||
36 | }; | 38 | }; |
37 | 39 | ||
38 | /* | 40 | /* |
diff --git a/include/linux/tracehook.h b/include/linux/tracehook.h index 6f8ab7da27c4..84d497297c5f 100644 --- a/include/linux/tracehook.h +++ b/include/linux/tracehook.h | |||
@@ -133,10 +133,6 @@ static inline void tracehook_report_syscall_exit(struct pt_regs *regs, int step) | |||
133 | 133 | ||
134 | /** | 134 | /** |
135 | * tracehook_signal_handler - signal handler setup is complete | 135 | * tracehook_signal_handler - signal handler setup is complete |
136 | * @sig: number of signal being delivered | ||
137 | * @info: siginfo_t of signal being delivered | ||
138 | * @ka: sigaction setting that chose the handler | ||
139 | * @regs: user register state | ||
140 | * @stepping: nonzero if debugger single-step or block-step in use | 136 | * @stepping: nonzero if debugger single-step or block-step in use |
141 | * | 137 | * |
142 | * Called by the arch code after a signal handler has been set up. | 138 | * Called by the arch code after a signal handler has been set up. |
@@ -146,9 +142,7 @@ static inline void tracehook_report_syscall_exit(struct pt_regs *regs, int step) | |||
146 | * Called without locks, shortly before returning to user mode | 142 | * Called without locks, shortly before returning to user mode |
147 | * (or handling more signals). | 143 | * (or handling more signals). |
148 | */ | 144 | */ |
149 | static inline void tracehook_signal_handler(int sig, siginfo_t *info, | 145 | static inline void tracehook_signal_handler(int stepping) |
150 | const struct k_sigaction *ka, | ||
151 | struct pt_regs *regs, int stepping) | ||
152 | { | 146 | { |
153 | if (stepping) | 147 | if (stepping) |
154 | ptrace_notify(SIGTRAP); | 148 | ptrace_notify(SIGTRAP); |
diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h index 2e2a5f7717e5..b1293f15f592 100644 --- a/include/linux/tracepoint.h +++ b/include/linux/tracepoint.h | |||
@@ -249,6 +249,50 @@ extern void syscall_unregfunc(void); | |||
249 | 249 | ||
250 | #endif /* CONFIG_TRACEPOINTS */ | 250 | #endif /* CONFIG_TRACEPOINTS */ |
251 | 251 | ||
252 | #ifdef CONFIG_TRACING | ||
253 | /** | ||
254 | * tracepoint_string - register constant persistent string to trace system | ||
255 | * @str - a constant persistent string that will be referenced in tracepoints | ||
256 | * | ||
257 | * If constant strings are being used in tracepoints, it is faster and | ||
258 | * more efficient to just save the pointer to the string and reference | ||
259 | * that with a printf "%s" instead of saving the string in the ring buffer | ||
260 | * and wasting space and time. | ||
261 | * | ||
262 | * The problem with the above approach is that userspace tools that read | ||
263 | * the binary output of the trace buffers do not have access to the string. | ||
264 | * Instead they just show the address of the string which is not very | ||
265 | * useful to users. | ||
266 | * | ||
267 | * With tracepoint_string(), the string will be registered to the tracing | ||
268 | * system and exported to userspace via the debugfs/tracing/printk_formats | ||
269 | * file that maps the string address to the string text. This way userspace | ||
270 | * tools that read the binary buffers have a way to map the pointers to | ||
271 | * the ASCII strings they represent. | ||
272 | * | ||
273 | * The @str used must be a constant string and persistent as it would not | ||
274 | * make sense to show a string that no longer exists. But it is still fine | ||
275 | * to be used with modules, because when modules are unloaded, if they | ||
276 | * had tracepoints, the ring buffers are cleared too. As long as the string | ||
277 | * does not change during the life of the module, it is fine to use | ||
278 | * tracepoint_string() within a module. | ||
279 | */ | ||
280 | #define tracepoint_string(str) \ | ||
281 | ({ \ | ||
282 | static const char *___tp_str __tracepoint_string = str; \ | ||
283 | ___tp_str; \ | ||
284 | }) | ||
285 | #define __tracepoint_string __attribute__((section("__tracepoint_str"))) | ||
286 | #else | ||
287 | /* | ||
288 | * tracepoint_string() is used to save the string address for userspace | ||
289 | * tracing tools. When tracing isn't configured, there's no need to save | ||
290 | * anything. | ||
291 | */ | ||
292 | # define tracepoint_string(str) str | ||
293 | # define __tracepoint_string | ||
294 | #endif | ||
295 | |||
252 | /* | 296 | /* |
253 | * The need for the DECLARE_TRACE_NOARGS() is to handle the prototype | 297 | * The need for the DECLARE_TRACE_NOARGS() is to handle the prototype |
254 | * (void). "void" is a special value in a function prototype and can | 298 | * (void). "void" is a special value in a function prototype and can |
diff --git a/include/net/netlabel.h b/include/net/netlabel.h index a4fc39bb3e4f..7b5a300de7f5 100644 --- a/include/net/netlabel.h +++ b/include/net/netlabel.h | |||
@@ -524,10 +524,10 @@ static inline int netlbl_catmap_setrng(struct netlbl_lsm_catmap **catmap, | |||
524 | { | 524 | { |
525 | return 0; | 525 | return 0; |
526 | } | 526 | } |
527 | static int netlbl_catmap_setlong(struct netlbl_lsm_catmap **catmap, | 527 | static inline int netlbl_catmap_setlong(struct netlbl_lsm_catmap **catmap, |
528 | u32 offset, | 528 | u32 offset, |
529 | unsigned long bitmap, | 529 | unsigned long bitmap, |
530 | gfp_t flags) | 530 | gfp_t flags) |
531 | { | 531 | { |
532 | return 0; | 532 | return 0; |
533 | } | 533 | } |
diff --git a/include/trace/events/ipi.h b/include/trace/events/ipi.h new file mode 100644 index 000000000000..834a7362a610 --- /dev/null +++ b/include/trace/events/ipi.h | |||
@@ -0,0 +1,89 @@ | |||
1 | #undef TRACE_SYSTEM | ||
2 | #define TRACE_SYSTEM ipi | ||
3 | |||
4 | #if !defined(_TRACE_IPI_H) || defined(TRACE_HEADER_MULTI_READ) | ||
5 | #define _TRACE_IPI_H | ||
6 | |||
7 | #include <linux/tracepoint.h> | ||
8 | |||
9 | /** | ||
10 | * ipi_raise - called when a smp cross call is made | ||
11 | * | ||
12 | * @mask: mask of recipient CPUs for the IPI | ||
13 | * @reason: string identifying the IPI purpose | ||
14 | * | ||
15 | * It is necessary for @reason to be a static string declared with | ||
16 | * __tracepoint_string. | ||
17 | */ | ||
18 | TRACE_EVENT(ipi_raise, | ||
19 | |||
20 | TP_PROTO(const struct cpumask *mask, const char *reason), | ||
21 | |||
22 | TP_ARGS(mask, reason), | ||
23 | |||
24 | TP_STRUCT__entry( | ||
25 | __bitmask(target_cpus, nr_cpumask_bits) | ||
26 | __field(const char *, reason) | ||
27 | ), | ||
28 | |||
29 | TP_fast_assign( | ||
30 | __assign_bitmask(target_cpus, cpumask_bits(mask), nr_cpumask_bits); | ||
31 | __entry->reason = reason; | ||
32 | ), | ||
33 | |||
34 | TP_printk("target_mask=%s (%s)", __get_bitmask(target_cpus), __entry->reason) | ||
35 | ); | ||
36 | |||
37 | DECLARE_EVENT_CLASS(ipi_handler, | ||
38 | |||
39 | TP_PROTO(const char *reason), | ||
40 | |||
41 | TP_ARGS(reason), | ||
42 | |||
43 | TP_STRUCT__entry( | ||
44 | __field(const char *, reason) | ||
45 | ), | ||
46 | |||
47 | TP_fast_assign( | ||
48 | __entry->reason = reason; | ||
49 | ), | ||
50 | |||
51 | TP_printk("(%s)", __entry->reason) | ||
52 | ); | ||
53 | |||
54 | /** | ||
55 | * ipi_entry - called immediately before the IPI handler | ||
56 | * | ||
57 | * @reason: string identifying the IPI purpose | ||
58 | * | ||
59 | * It is necessary for @reason to be a static string declared with | ||
60 | * __tracepoint_string, ideally the same as used with trace_ipi_raise | ||
61 | * for that IPI. | ||
62 | */ | ||
63 | DEFINE_EVENT(ipi_handler, ipi_entry, | ||
64 | |||
65 | TP_PROTO(const char *reason), | ||
66 | |||
67 | TP_ARGS(reason) | ||
68 | ); | ||
69 | |||
70 | /** | ||
71 | * ipi_exit - called immediately after the IPI handler returns | ||
72 | * | ||
73 | * @reason: string identifying the IPI purpose | ||
74 | * | ||
75 | * It is necessary for @reason to be a static string declared with | ||
76 | * __tracepoint_string, ideally the same as used with trace_ipi_raise for | ||
77 | * that IPI. | ||
78 | */ | ||
79 | DEFINE_EVENT(ipi_handler, ipi_exit, | ||
80 | |||
81 | TP_PROTO(const char *reason), | ||
82 | |||
83 | TP_ARGS(reason) | ||
84 | ); | ||
85 | |||
86 | #endif /* _TRACE_IPI_H */ | ||
87 | |||
88 | /* This part must be outside protection */ | ||
89 | #include <trace/define_trace.h> | ||
diff --git a/include/uapi/drm/nouveau_drm.h b/include/uapi/drm/nouveau_drm.h index 2a5769fdf8ba..0d7608dc1a34 100644 --- a/include/uapi/drm/nouveau_drm.h +++ b/include/uapi/drm/nouveau_drm.h | |||
@@ -25,6 +25,16 @@ | |||
25 | #ifndef __NOUVEAU_DRM_H__ | 25 | #ifndef __NOUVEAU_DRM_H__ |
26 | #define __NOUVEAU_DRM_H__ | 26 | #define __NOUVEAU_DRM_H__ |
27 | 27 | ||
28 | #define DRM_NOUVEAU_EVENT_NVIF 0x80000000 | ||
29 | |||
30 | /* reserved object handles when using deprecated object APIs - these | ||
31 | * are here so that libdrm can allow interoperability with the new | ||
32 | * object APIs | ||
33 | */ | ||
34 | #define NOUVEAU_ABI16_CLIENT 0xffffffff | ||
35 | #define NOUVEAU_ABI16_DEVICE 0xdddddddd | ||
36 | #define NOUVEAU_ABI16_CHAN(n) (0xcccc0000 | (n)) | ||
37 | |||
28 | #define NOUVEAU_GEM_DOMAIN_CPU (1 << 0) | 38 | #define NOUVEAU_GEM_DOMAIN_CPU (1 << 0) |
29 | #define NOUVEAU_GEM_DOMAIN_VRAM (1 << 1) | 39 | #define NOUVEAU_GEM_DOMAIN_VRAM (1 << 1) |
30 | #define NOUVEAU_GEM_DOMAIN_GART (1 << 2) | 40 | #define NOUVEAU_GEM_DOMAIN_GART (1 << 2) |
@@ -123,6 +133,7 @@ struct drm_nouveau_gem_cpu_fini { | |||
123 | #define DRM_NOUVEAU_GROBJ_ALLOC 0x04 /* deprecated */ | 133 | #define DRM_NOUVEAU_GROBJ_ALLOC 0x04 /* deprecated */ |
124 | #define DRM_NOUVEAU_NOTIFIEROBJ_ALLOC 0x05 /* deprecated */ | 134 | #define DRM_NOUVEAU_NOTIFIEROBJ_ALLOC 0x05 /* deprecated */ |
125 | #define DRM_NOUVEAU_GPUOBJ_FREE 0x06 /* deprecated */ | 135 | #define DRM_NOUVEAU_GPUOBJ_FREE 0x06 /* deprecated */ |
136 | #define DRM_NOUVEAU_NVIF 0x07 | ||
126 | #define DRM_NOUVEAU_GEM_NEW 0x40 | 137 | #define DRM_NOUVEAU_GEM_NEW 0x40 |
127 | #define DRM_NOUVEAU_GEM_PUSHBUF 0x41 | 138 | #define DRM_NOUVEAU_GEM_PUSHBUF 0x41 |
128 | #define DRM_NOUVEAU_GEM_CPU_PREP 0x42 | 139 | #define DRM_NOUVEAU_GEM_CPU_PREP 0x42 |