On Sat, Jun 30, 2018 at 08:43:18PM +0200, Mark Kettenis wrote:
> The pointer to the DSDT may be 64-bit as well.  In that case the
> 32-bit field will be zero and we have to use the 64-bit field.
> 
> ok?
> 
> 
> Index: acpidump.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/acpidump/acpidump.c,v
> retrieving revision 1.18
> diff -u -p -r1.18 acpidump.c
> --- acpidump.c        24 Jun 2018 10:39:59 -0000      1.18
> +++ acpidump.c        30 Jun 2018 18:41:51 -0000
> @@ -532,7 +532,10 @@ acpi_handle_facp(struct FACPbody *facp)
>       struct ACPIsdt  *dsdp;
>  
>       acpi_print_facp(facp);
> -     dsdp = (struct ACPIsdt *) acpi_map_sdt(facp->dsdt_ptr);
> +     if (facp->dsdt_ptr == 0)
> +             dsdp = (struct ACPIsdt *) acpi_map_sdt(facp->x_dsdt);
> +     else
> +             dsdp = (struct ACPIsdt *) acpi_map_sdt(facp->dsdt_ptr);
>       if (acpi_checksum(dsdp, dsdp->len))
>               errx(1, "DSDT is corrupt");
>       acpi_handle_dsdt(dsdp);
> 

ok

Reply via email to