aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/kernel.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/kernel.h')
-rw-r--r--include/linux/kernel.h53
1 files changed, 34 insertions, 19 deletions
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index fba141d3ca07..269df5a17b30 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -141,6 +141,15 @@ extern int _cond_resched(void);
141 (__x < 0) ? -__x : __x; \ 141 (__x < 0) ? -__x : __x; \
142 }) 142 })
143 143
144#ifdef CONFIG_PROVE_LOCKING
145void might_fault(void);
146#else
147static inline void might_fault(void)
148{
149 might_sleep();
150}
151#endif
152
144extern struct atomic_notifier_head panic_notifier_list; 153extern struct atomic_notifier_head panic_notifier_list;
145extern long (*panic_blink)(long time); 154extern long (*panic_blink)(long time);
146NORET_TYPE void panic(const char * fmt, ...) 155NORET_TYPE void panic(const char * fmt, ...)
@@ -188,6 +197,8 @@ extern unsigned long long memparse(const char *ptr, char **retptr);
188extern int core_kernel_text(unsigned long addr); 197extern int core_kernel_text(unsigned long addr);
189extern int __kernel_text_address(unsigned long addr); 198extern int __kernel_text_address(unsigned long addr);
190extern int kernel_text_address(unsigned long addr); 199extern int kernel_text_address(unsigned long addr);
200extern int func_ptr_is_kernel_text(void *ptr);
201
191struct pid; 202struct pid;
192extern struct pid *session_of_pgrp(struct pid *pgrp); 203extern struct pid *session_of_pgrp(struct pid *pgrp);
193 204
@@ -318,32 +329,36 @@ static inline char *pack_hex_byte(char *buf, u8 byte)
318 return buf; 329 return buf;
319} 330}
320 331
321#define pr_emerg(fmt, arg...) \ 332#ifndef pr_fmt
322 printk(KERN_EMERG fmt, ##arg) 333#define pr_fmt(fmt) fmt
323#define pr_alert(fmt, arg...) \ 334#endif
324 printk(KERN_ALERT fmt, ##arg) 335
325#define pr_crit(fmt, arg...) \ 336#define pr_emerg(fmt, ...) \
326 printk(KERN_CRIT fmt, ##arg) 337 printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
327#define pr_err(fmt, arg...) \ 338#define pr_alert(fmt, ...) \
328 printk(KERN_ERR fmt, ##arg) 339 printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__)
329#define pr_warning(fmt, arg...) \ 340#define pr_crit(fmt, ...) \
330 printk(KERN_WARNING fmt, ##arg) 341 printk(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__)
331#define pr_notice(fmt, arg...) \ 342#define pr_err(fmt, ...) \
332 printk(KERN_NOTICE fmt, ##arg) 343 printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
333#define pr_info(fmt, arg...) \ 344#define pr_warning(fmt, ...) \
334 printk(KERN_INFO fmt, ##arg) 345 printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
346#define pr_notice(fmt, ...) \
347 printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
348#define pr_info(fmt, ...) \
349 printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
335 350
336/* If you are writing a driver, please use dev_dbg instead */ 351/* If you are writing a driver, please use dev_dbg instead */
337#if defined(CONFIG_DYNAMIC_PRINTK_DEBUG) 352#if defined(CONFIG_DYNAMIC_PRINTK_DEBUG)
338#define pr_debug(fmt, ...) do { \ 353#define pr_debug(fmt, ...) do { \
339 dynamic_pr_debug(fmt, ##__VA_ARGS__); \ 354 dynamic_pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \
340 } while (0) 355 } while (0)
341#elif defined(DEBUG) 356#elif defined(DEBUG)
342#define pr_debug(fmt, arg...) \ 357#define pr_debug(fmt, ...) \
343 printk(KERN_DEBUG fmt, ##arg) 358 printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
344#else 359#else
345#define pr_debug(fmt, arg...) \ 360#define pr_debug(fmt, ...) \
346 ({ if (0) printk(KERN_DEBUG fmt, ##arg); 0; }) 361 ({ if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); 0; })
347#endif 362#endif
348 363
349/* 364/*