@@ -20,18 +20,19 @@
#include <linux/soc/andes/irq.h>
#include <asm/hwcap.h>
+#include <asm/ptrace.h>
static struct irq_domain *intc_domain;
-static unsigned int riscv_intc_nr_irqs __ro_after_init = BITS_PER_LONG;
-static unsigned int riscv_intc_custom_base __ro_after_init = BITS_PER_LONG;
+static unsigned int riscv_intc_nr_irqs __ro_after_init = __riscv_xlen;
+static unsigned int riscv_intc_custom_base __ro_after_init = __riscv_xlen;
static unsigned int riscv_intc_custom_nr_irqs __ro_after_init;
static void riscv_intc_irq(struct pt_regs *regs)
{
- unsigned long cause = regs->cause & ~CAUSE_IRQ_FLAG;
+ xlen_t cause = regs->cause & ~CAUSE_IRQ_FLAG;
if (generic_handle_domain_irq(intc_domain, cause))
- pr_warn_ratelimited("Failed to handle interrupt (cause: %ld)\n", cause);
+ pr_warn_ratelimited("Failed to handle interrupt (cause: " REG_FMT ")\n", cause);
}
static void riscv_intc_aia_irq(struct pt_regs *regs)