Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/dev



On Wed, Mar 24, 2010 at 01:13:30AM +0000, David Young wrote:
> Module Name:  src
> Committed By: dyoung
> Date:         Wed Mar 24 01:13:30 UTC 2010
> 
> Modified Files:
>       src/sys/dev/acpi: acpi_ec.c
>       src/sys/dev/isa: pas.c
> 
> Log Message:
> Do not use unitialized bus_space_tag_t's.  Use the tag(s) from the
> attachment arguments.
> 
> 
> To generate a diff of this commit:
> cvs rdiff -u -r1.62 -r1.63 src/sys/dev/acpi/acpi_ec.c
> cvs rdiff -u -r1.67 -r1.68 src/sys/dev/isa/pas.c

This makes systems with acpiecdt(4) panic early in the boot:

 static bool acpiec_suspend(device_t, const pmf_qual_t *);
 static bool acpiec_resume(device_t, const pmf_qual_t *);
@@ -225,6 +226,7 @@
 static void
 acpiecdt_attach(device_t parent, device_t self, void *aux)
 {   
+       struct acpi_attach_args *aa = aux;
        ACPI_HANDLE ec_handle;
        bus_addr_t cmd_reg, data_reg;
        uint8_t gpebit;
@@ -235,8 +237,8 @@
        aprint_naive("\n");
        aprint_normal(": ACPI Embedded Controller via ECDT\n");

-       acpiec_common_attach(parent, self, ec_handle, cmd_reg, data_reg,
-           NULL, gpebit);
+       acpiec_common_attach(parent, self, ec_handle, aa->aa_iot, cmd_reg,
+           aa->aa_iot, data_reg, NULL, gpebit);
 }

There is a NULL pointer dereference above, given that the ECDT, unlike rest
of the APCI device nodes, is attached as:

        /* Early EC handler initialization if ECDT table is available. */
        config_found_ia(self, "acpiecdtbus", NULL, NULL);

- Jukka.


Home | Main Index | Thread Index | Old Index