On 2023-12-18 15:48, Jan Beulich wrote:
... in order to also deny Dom0 access through the alias ports. Without
this it is only giving the impression of denying access to both PICs.
Unlike for CMOS/RTC, do detection very early, to avoid disturbing
normal
operation later on.
Like for CMOS/RTC a fundamental assumption of the probing is that reads
from the probed alias port won't have side effects in case it does not
alias the respective PIC's one.
Signed-off-by: Jan Beulich <jbeul...@suse.com>
---
v2: Use new command line option. s/pic/8252A/. Re-base over new earlier
patch. Use ISOLATE_LSB().
Hi,
coming back to this patch, which I believe didn't receive much feedback
and thus wasn't committed, for a reason:
--- a/xen/arch/x86/i8259.c
+++ b/xen/arch/x86/i8259.c
@@ -19,6 +19,7 @@
#include <xen/delay.h>
#include <asm/apic.h>
#include <asm/asm_defns.h>
+#include <asm/setup.h>
Here asm/setup is included, which provides the declaration for init_IRQ,
defined below in the file
void __init init_IRQ(void)
@@ -343,6 +396,8 @@ void __init init_IRQ(void)
which is defined here. This patch would, among other things, address a
MISRA C Rule 8.4 violation ("A compatible declaration shall be visible
when an object or function with external linkage is defined"). I did
send a patch concerned only with the MISRA violation, but correctly it
was pointed out that this one was doing that and more. Perhaps someone
can have a look at this?
init_8259A(0);
+ probe_8259A_alias();
+
for (irq = 0; platform_legacy_irq(irq); irq++) {
struct irq_desc *desc = irq_to_desc(irq);
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -46,6 +46,8 @@ extern uint8_t kbd_shift_flags;
extern unsigned long highmem_start;
#endif
+extern unsigned int i8259A_alias_mask;
+
extern int8_t opt_smt;
extern int8_t opt_probe_port_aliases;
--
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)