Applied, thanks! Damien Zammit, le mer. 23 oct. 2024 00:34:54 +0000, a ecrit: > As the acpi translator requires libirqhelp, we cannot fail when > libirqhelp cannot connect to acpi translator, break the egg/chicken. > > acpi translator will only call the irqhelp api with fixed gsi during startup, > so won't require itself to be started yet. > --- > libirqhelp/irqhelp.c | 17 ++++++++++++----- > 1 file changed, 12 insertions(+), 5 deletions(-) > > diff --git a/libirqhelp/irqhelp.c b/libirqhelp/irqhelp.c > index 985885b9..814fd71c 100644 > --- a/libirqhelp/irqhelp.c > +++ b/libirqhelp/irqhelp.c > @@ -51,6 +51,7 @@ struct irq { > > static mach_port_t irqdev = MACH_PORT_NULL; > static mach_port_t acpidev = MACH_PORT_NULL; > +static bool acpi_missing = false; > > static error_t > get_acpi(void) > @@ -72,7 +73,10 @@ get_acpi(void) > > tryacpi = file_name_lookup (_SERVERS_ACPI, O_RDONLY, 0); > if (tryacpi == MACH_PORT_NULL) > - return ENODEV; > + { > + acpi_missing = true; > + return ENODEV; > + } > > acpidev = tryacpi; > return 0; > @@ -129,10 +133,7 @@ irqhelp_init(void) > > err = get_acpi(); > if (err) > - { > - log_error("cannot grab acpi device\n"); > - return err; > - } > + log_error("cannot grab acpi device, continuing\n"); > > inited = true; > return 0; > @@ -320,6 +321,12 @@ irqhelp_install_interrupt_handler(int gsi, > > if (gsi < 0) > { > + if (acpi_missing) > + { > + log_error("requires valid gsi when acpi device is missing\n"); > + return NULL; > + } > + > if ((bus < 0) || (dev < 0) || (fun < 0)) > { > log_error("invalid b/d/f\n"); > -- > 2.45.2 > > >
-- Samuel > et sinon, quand on s'interesse a un media que l'on ne maitrise pas, > on essaye de le comprendre d'abord. (Suivi par l'intégralité du message initial de 45 lignes.) -+-BM in : GNU - La maîtrise est un long apprentissage petit scarabé -+-