|
@@ -14,6 +14,13 @@ extern void uv_cpu_init(void);
|
|
|
extern void uv_nmi_init(void);
|
|
|
extern void uv_register_nmi_notifier(void);
|
|
|
extern void uv_system_init(void);
|
|
|
+extern void (*uv_trace_nmi_func)(unsigned int reason, struct pt_regs *regs);
|
|
|
+extern void (*uv_trace_func)(const char *f, const int l, const char *fmt, ...);
|
|
|
+#define uv_trace(fmt, ...) \
|
|
|
+do { \
|
|
|
+ if (unlikely(uv_trace_func)) \
|
|
|
+ (uv_trace_func)(__func__, __LINE__, fmt, ##__VA_ARGS__);\
|
|
|
+} while (0)
|
|
|
extern const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
|
|
|
struct mm_struct *mm,
|
|
|
unsigned long start,
|
|
@@ -26,6 +33,7 @@ static inline enum uv_system_type get_uv_system_type(void) { return UV_NONE; }
|
|
|
static inline int is_uv_system(void) { return 0; }
|
|
|
static inline void uv_cpu_init(void) { }
|
|
|
static inline void uv_system_init(void) { }
|
|
|
+static inline void uv_trace(void *fmt, ...) { }
|
|
|
static inline void uv_register_nmi_notifier(void) { }
|
|
|
static inline const struct cpumask *
|
|
|
uv_flush_tlb_others(const struct cpumask *cpumask, struct mm_struct *mm,
|