Hi Sven, * Sven Schnelle <svens@xxxxxxxxxxxxxx>: > i just updated my C3750 to latest git, and got the kernel oops below. It looks > like the change to using F_EXTEND breaks using 32 bit kernels on at least my > C3750. Not sure whether we should revert the F_EXTEND change, or just cast > the other side of the compare to long. The patch below does this. Thanks for testing! I think, as suggested by you, revertig parts of my patch makes most sense. I've committed the patch below to my for-next tree. Can you check if it works for you? Helge -------------------- >From dae50289effc106df023796eb25d602244e73ac1 Mon Sep 17 00:00:00 2001 From: Helge Deller <deller@xxxxxx> Date: Mon, 18 Mar 2019 22:56:15 +0100 Subject: [PATCH] Revert: parisc: Use F_EXTEND() macro in iosapic code Revert parts of commit 97d7e2e3fd8a ("parisc: Use F_EXTEND() macro in iosapic code"). It breaks booting the 32-bit kernel. Reported-by: Sven Schnelle <svens@xxxxxxxxxxxxxx> Fixes: 97d7e2e3fd8a ("parisc: Use F_EXTEND() macro in iosapic code") Signed-off-by: Helge Deller <deller@xxxxxx> diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c index 1be571c20062..6bad04cbb1d3 100644 --- a/drivers/parisc/iosapic.c +++ b/drivers/parisc/iosapic.c @@ -157,8 +157,12 @@ #define DBG_IRT(x...) #endif +#ifdef CONFIG_64BIT +#define COMPARE_IRTE_ADDR(irte, hpa) ((irte)->dest_iosapic_addr == (hpa)) +#else #define COMPARE_IRTE_ADDR(irte, hpa) \ - ((irte)->dest_iosapic_addr == F_EXTEND(hpa)) + ((irte)->dest_iosapic_addr == ((hpa) | 0xffffffff00000000ULL)) +#endif #define IOSAPIC_REG_SELECT 0x00 #define IOSAPIC_REG_WINDOW 0x10