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é -+-

Reply via email to