Re: [PATCH] parisc: fix iosapic address compare

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux