cregit-Linux how code gets into the kernel

Release 4.11 arch/parisc/include/asm/bug.h

#ifndef _PARISC_BUG_H

#define _PARISC_BUG_H

#include <linux/kernel.h>	/* for BUGFLAG_TAINT */

/*
 * Tell the user there is some problem.
 * The offending file and line are encoded in the __bug_table section.
 */

#ifdef CONFIG_BUG

#define HAVE_ARCH_BUG

#define HAVE_ARCH_WARN_ON

/* the break instruction is used as BUG() marker.  */

#define	PARISC_BUG_BREAK_ASM	"break 0x1f, 0x1fff"

#define	PARISC_BUG_BREAK_INSN	0x03ffe01f  
/* PARISC_BUG_BREAK_ASM */

#if defined(CONFIG_64BIT)

#define ASM_WORD_INSN		".dword\t"
#else

#define ASM_WORD_INSN		".word\t"
#endif

#ifdef CONFIG_DEBUG_BUGVERBOSE

#define BUG()								\
	do {                                                            \
                asm volatile("\n"                                       \
                             "1:\t" PARISC_BUG_BREAK_ASM "\n"           \
                             "\t.pushsection __bug_table,\"a\"\n"       \
                             "2:\t" ASM_WORD_INSN "1b, %c0\n"           \
                             "\t.short %c1, %c2\n"                      \
                             "\t.org 2b+%c3\n"                          \
                             "\t.popsection"                            \
                             : : "i" (__FILE__), "i" (__LINE__),        \
                             "i" (0), "i" (sizeof(struct bug_entry)) ); \
                unreachable();                                          \
        } while(0)

#else

#define BUG()								\
	do {                                                            \
                asm volatile(PARISC_BUG_BREAK_ASM : : );                \
                unreachable();                                          \
        } while(0)
#endif

#ifdef CONFIG_DEBUG_BUGVERBOSE

#define __WARN_TAINT(taint)						\
	do {                                                            \
                asm volatile("\n"                                       \
                             "1:\t" PARISC_BUG_BREAK_ASM "\n"           \
                             "\t.pushsection __bug_table,\"a\"\n"       \
                             "2:\t" ASM_WORD_INSN "1b, %c0\n"           \
                             "\t.short %c1, %c2\n"                      \
                             "\t.org 2b+%c3\n"                          \
                             "\t.popsection"                            \
                             : : "i" (__FILE__), "i" (__LINE__),        \
                             "i" (BUGFLAG_TAINT(taint)),                \
                             "i" (sizeof(struct bug_entry)) );          \
        } while(0)
#else

#define __WARN_TAINT(taint)						\
	do {                                                            \
                asm volatile("\n"                                       \
                             "1:\t" PARISC_BUG_BREAK_ASM "\n"           \
                             "\t.pushsection __bug_table,\"a\"\n"       \
                             "2:\t" ASM_WORD_INSN "1b\n"                \
                             "\t.short %c0\n"                           \
                             "\t.org 2b+%c1\n"                          \
                             "\t.popsection"                            \
                             : : "i" (BUGFLAG_TAINT(taint)),            \
                             "i" (sizeof(struct bug_entry)) );          \
        } while(0)
#endif



#define WARN_ON(x) ({                                              \
        int __ret_warn_on = !!(x);                              \
        if (__builtin_constant_p(__ret_warn_on)) {              \
                if (__ret_warn_on)                              \
                        __WARN();                               \
        } else {                                                \
                if (unlikely(__ret_warn_on))                    \
                        __WARN();                               \
        }                                                       \
        unlikely(__ret_warn_on);                                \
})

#endif

#include <asm-generic/bug.h>
#endif


Overall Contributors

PersonTokensPropCommitsCommitProp
Helge Deller6461.54%327.27%
Ben Hutchings109.62%19.09%
Russell King87.69%19.09%
Matt Mackall87.69%218.18%
Matthew Wilcox76.73%19.09%
James Bottomley43.85%19.09%
David Daney21.92%19.09%
Heiko Carstens10.96%19.09%
Total104100.00%11100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.