mirror of https://gitee.com/openkylin/linux.git
Move _RET_IP_ and _THIS_IP_ to include/linux/kernel.h
These two macros are useful beyond lock debugging. Moved definitions from include/linux/debug_locks.h to include/linux/kernel.h, so code that needs them does not have to include the former, which would have been a less intuitive choice of a header. Signed-off-by: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro> Acked-by: Pekka Enberg <penberg@cs.helsinki.fi> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
84df87b7eb
commit
ca31e146d5
|
@ -1,6 +1,8 @@
|
|||
#ifndef __LINUX_DEBUG_LOCKING_H
|
||||
#define __LINUX_DEBUG_LOCKING_H
|
||||
|
||||
#include <linux/kernel.h>
|
||||
|
||||
struct task_struct;
|
||||
|
||||
extern int debug_locks;
|
||||
|
@ -11,14 +13,6 @@ extern int debug_locks_silent;
|
|||
*/
|
||||
extern int debug_locks_off(void);
|
||||
|
||||
/*
|
||||
* In the debug case we carry the caller's instruction pointer into
|
||||
* other functions, but we dont want the function argument overhead
|
||||
* in the nondebug case - hence these macros:
|
||||
*/
|
||||
#define _RET_IP_ (unsigned long)__builtin_return_address(0)
|
||||
#define _THIS_IP_ ({ __label__ __here; __here: (unsigned long)&&__here; })
|
||||
|
||||
#define DEBUG_LOCKS_WARN_ON(c) \
|
||||
({ \
|
||||
int __ret = 0; \
|
||||
|
|
|
@ -46,6 +46,9 @@ extern const char linux_proc_banner[];
|
|||
#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
|
||||
#define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y))
|
||||
|
||||
#define _RET_IP_ (unsigned long)__builtin_return_address(0)
|
||||
#define _THIS_IP_ ({ __label__ __here; __here: (unsigned long)&&__here; })
|
||||
|
||||
#ifdef CONFIG_LBD
|
||||
# include <asm/div64.h>
|
||||
# define sector_div(a, b) do_div(a, b)
|
||||
|
|
Loading…
Reference in New Issue