2016-09-03 23:04 GMT+02:00 Philip Guenther <pguent...@proofpoint.com>:
>
> Can you apply this patch in /usr/src/sys/dev/acpi/ and see if the
> resulting kernel works?  If so, please use sendbug to send in the acpidump
> output.
>

The patch didn't apply with the latest sources. However I managed to
apply it manually.
I booted the older working kernel and tried to compile the kernel
again. But alas, attempt to compile kernel fails in what seems, I
guess, to be another problem:

(...snip...)
cc  -Werror -Wall -Wimplicit-function-declaration  -Wno-main
-Wno-uninitialized  -Wframe-larger-than=2047  -fno-builtin-printf
-fno-builtin-snprintf  -fno-builtin-vsnprintf -fno-builtin-log
-fno-builtin-log2 -fno-builtin-malloc -fno-pie -O2 -pipe -nostdinc
-I../../../.. -I. -I../../../../arch -DDDB -DDIAGNOSTIC -DKTRACE
-DACCOUNTING -DKMEMSTATS -DPTRACE -DPOOL_DEBUG -DCRYPTO -DSYSVMSG
-DSYSVSEM -DSYSVSHM -DUVM_SWAP_ENCRYPT -DFFS -DFFS2 -DFFS_SOFTUPDATES
-DUFS_DIRHASH -DQUOTA -DEXT2FS -DMFS -DNFSCLIENT -DNFSSERVER -DCD9660
-DUDF -DMSDOSFS -DFIFO -DFUSE -DSOCKET_SPLICE -DTCP_SACK -DTCP_ECN
-DTCP_SIGNATURE -DART -DINET6 -DIPSEC -DPPP_BSDCOMP -DPPP_DEFLATE
-DPIPEX -DMROUTING -DMPLS -DBOOT_CONFIG -DUSER_PCICONF -DKVM86
-DAPERTURE -DMTRR -DNTFS -DHIBERNATE -DPCIVERBOSE -DEISAVERBOSE
-DUSBVERBOSE -DWSDISPLAY_COMPAT_USL -DWSDISPLAY_COMPAT_RAWKBD
-DWSDISPLAY_DEFAULTSCREENS="6" -DX86EMU -DONEWIREVERBOSE -DMAXUSERS=80
-D_KERNEL -MD -MP  -c ../../../../netinet6/in6_pcb.c
../../../../netinet6/in6_pcb.c: In function 'in6_pcbaddrisavail':
../../../../netinet6/in6_pcb.c:211: error: expected expression before '<<' token
../../../../netinet6/in6_pcb.c:268: error: 'IN6_IFF_NOTREADY'
undeclared (first use in this function)
../../../../netinet6/in6_pcb.c:268: error: (Each undeclared identifier
is reported only once
../../../../netinet6/in6_pcb.c:268: error: for each function it appears in.)
../../../../netinet6/in6_pcb.c:284: error: 'error' undeclared (first
use in this function)
cc1: warnings being treated as errors
../../../../netinet6/in6_pcb.c:287: warning: implicit declaration of
function 'in_pcblookup'
../../../../netinet6/in6_pcb.c:287: error: 'head' undeclared (first
use in this function)
../../../../netinet6/in6_pcb.c:291: warning: assignment makes pointer
from integer without a cast
../../../../netinet6/in6_pcb.c:298: error: expected expression before '==' token
../../../../netinet6/in6_pcb.c:307: warning: assignment makes pointer
from integer without a cast
../../../../netinet6/in6_pcb.c:307: error: expected ';' before '}' token
../../../../netinet6/in6_pcb.c:313: error: expected expression before '>>' token
../../../../netinet6/in6_pcb.c:316: error: too few arguments to
function 'in_pcblookup_local'
../../../../netinet6/in6_pcb.c:592: error: expected declaration or
statement at end of input
*** Error 1 in /usr/src/sys/arch/i386/compile/GENERIC (Makefile:1023
'in6_pcb.o')






>
> Philip
>
>
> Index: acpi.c
> ===================================================================
> RCS file: /data/src/openbsd/src/sys/dev/acpi/acpi.c,v
> retrieving revision 1.313
> retrieving revision 1.312
> diff -u -p -r1.313 -r1.312
> --- acpi.c      28 Jul 2016 21:57:56 -0000      1.313
> +++ acpi.c      10 Jun 2016 20:03:46 -0000      1.312
> @@ -1960,8 +1960,6 @@ acpi_add_device(struct aml_node *node, v
>         struct acpi_attach_args aaa;
>  #ifdef MULTIPROCESSOR
>         struct aml_value res;
> -       CPU_INFO_ITERATOR cii;
> -       struct cpu_info *ci;
>         int proc_id = -1;
>  #endif
>
> @@ -1982,11 +1980,8 @@ acpi_add_device(struct aml_node *node, v
>                                 proc_id = res.v_processor.proc_id;
>                         aml_freevalue(&res);
>                 }
> -               CPU_INFO_FOREACH(cii, ci) {
> -                       if (ci->ci_acpi_proc_id == proc_id)
> -                               break;
> -               }
> -               if (ci == NULL)
> +               if (proc_id < -1 || proc_id >= LAPIC_MAP_SIZE ||
> +                   (acpi_lapic_flags[proc_id] & ACPI_PROC_ENABLE) == 0)
>                         return 0;
>  #endif
>                 nacpicpus++;
> Index: acpicpu.c
> ===================================================================
> RCS file: /data/src/openbsd/src/sys/dev/acpi/acpicpu.c,v
> retrieving revision 1.75
> retrieving revision 1.74
> diff -u -p -r1.75 -r1.74
> --- acpicpu.c   28 Jul 2016 21:57:56 -0000      1.75
> +++ acpicpu.c   17 Mar 2016 13:18:47 -0000      1.74
> @@ -675,7 +675,7 @@ acpicpu_attach(struct device *parent, st
>
>         /* link in the matching cpu_info */
>         CPU_INFO_FOREACH(cii, ci)
> -               if (ci->ci_acpi_proc_id == sc->sc_cpu) {
> +               if (ci->ci_cpuid == sc->sc_dev.dv_unit) {
>                         ci->ci_acpicpudev = self;
>                         sc->sc_ci = ci;
>                         break;
> Index: acpimadt.c
> ===================================================================
> RCS file: /data/src/openbsd/src/sys/dev/acpi/acpimadt.c,v
> retrieving revision 1.35
> retrieving revision 1.34
> diff -u -p -r1.35 -r1.34
> --- acpimadt.c  28 Jul 2016 21:57:56 -0000      1.35
> +++ acpimadt.c  10 Jul 2016 20:41:19 -0000      1.34
> @@ -40,6 +40,8 @@
>
>  #include "ioapic.h"
>
> +u_int8_t acpi_lapic_flags[LAPIC_MAP_SIZE];
> +
>  int acpimadt_match(struct device *, void *, void *);
>  void acpimadt_attach(struct device *, struct device *, void *);
>
> @@ -242,6 +244,8 @@ acpimadt_attach(struct device *parent, s
>
>                         lapic_map[entry->madt_lapic.acpi_proc_id] =
>                             entry->madt_lapic.apic_id;
> +                       acpi_lapic_flags[entry->madt_lapic.acpi_proc_id] =
> +                           entry->madt_lapic.flags;
>
>                         memset(&caa, 0, sizeof(struct cpu_attach_args));
>                         if (lapic_cpu_number() == entry->madt_lapic.apic_id)
> @@ -251,8 +255,7 @@ acpimadt_attach(struct device *parent, s
>                                 ncpusfound++;
>                         }
>                         caa.caa_name = "cpu";
> -                       caa.cpu_apicid = entry->madt_lapic.apic_id;
> -                       caa.cpu_acpi_proc_id = entry->madt_lapic.acpi_proc_id;
> +                       caa.cpu_number = entry->madt_lapic.apic_id;
>  #ifdef MULTIPROCESSOR
>                         caa.cpu_func = &mp_cpu_funcs;
>  #endif
> @@ -305,8 +308,7 @@ acpimadt_attach(struct device *parent, s
>                                 ncpusfound++;
>                         }
>                         caa.caa_name = "cpu";
> -                       caa.cpu_apicid = entry->madt_x2apic.apic_id;
> -                       caa.cpu_acpi_proc_id = 
> entry->madt_x2apic.acpi_proc_uid;
> +                       caa.cpu_number = entry->madt_x2apic.apic_id;
>  #ifdef MULTIPROCESSOR
>                         caa.cpu_func = &mp_cpu_funcs;
>  #endif
> Index: acpivar.h
> ===================================================================
> RCS file: /data/src/openbsd/src/sys/dev/acpi/acpivar.h,v
> retrieving revision 1.83
> retrieving revision 1.82
> diff -u -p -r1.83 -r1.82
> --- acpivar.h   28 Jul 2016 21:57:56 -0000      1.83
> +++ acpivar.h   12 Jan 2016 01:11:15 -0000      1.82
> @@ -41,6 +41,9 @@ extern int acpi_debug;
>
>  extern int acpi_hasprocfvs;
>
> +#define LAPIC_MAP_SIZE 256
> +extern u_int8_t acpi_lapic_flags[LAPIC_MAP_SIZE];
> +
>  struct klist;
>  struct acpiec_softc;
>  struct acpipwrres_softc;



-- 



Eivind Eide

"ONLY THOSE WHO ATTEMPT THE IMPOSSIBLE WILL ACHIEVE THE ABSURD"
- Oceania Association of Autonomous Astronauts

Reply via email to