|
@@ -84,12 +84,12 @@
|
|
|
|
|
|
/*
|
|
/*
|
|
* We're short on space and time in the exception prolog, so we can't
|
|
* We're short on space and time in the exception prolog, so we can't
|
|
- * use the normal SET_REG_IMMEDIATE macro. Normally we just need the
|
|
|
|
- * low halfword of the address, but for Kdump we need the whole low
|
|
|
|
- * word.
|
|
|
|
|
|
+ * use the normal LOAD_REG_IMMEDIATE macro to load the address of label.
|
|
|
|
+ * Instead we get the base of the kernel from paca->kernelbase and or in the low
|
|
|
|
+ * part of label. This requires that the label be within 64KB of kernelbase, and
|
|
|
|
+ * that kernelbase be 64K aligned.
|
|
*/
|
|
*/
|
|
#define LOAD_HANDLER(reg, label) \
|
|
#define LOAD_HANDLER(reg, label) \
|
|
- /* Handlers must be within 64K of kbase, which must be 64k aligned */ \
|
|
|
|
ori reg,reg,(label)-_stext; /* virt addr of handler ... */
|
|
ori reg,reg,(label)-_stext; /* virt addr of handler ... */
|
|
|
|
|
|
/* Exception register prefixes */
|
|
/* Exception register prefixes */
|