Fix uart_fdt_get_clock. It should have beed using the cell variable passed

in, not value on the stack.
This commit is contained in:
andrew 2015-04-07 12:42:06 +00:00
parent 979d590154
commit 3e40c64fd3

View File

@ -66,19 +66,16 @@ static driver_t uart_fdt_driver = {
int
uart_fdt_get_clock(phandle_t node, pcell_t *cell)
{
pcell_t clock;
/* clock-frequency is a FreeBSD-only extention. */
if ((OF_getencprop(node, "clock-frequency", &clock,
sizeof(clock))) <= 0)
clock = 0;
if (clock == 0)
if ((OF_getencprop(node, "clock-frequency", cell,
sizeof(*cell))) <= 0) {
/* Try to retrieve parent 'bus-frequency' */
/* XXX this should go to simple-bus fixup or so */
if ((OF_getencprop(OF_parent(node), "bus-frequency", &clock,
sizeof(clock))) <= 0)
clock = 0;
if ((OF_getencprop(OF_parent(node), "bus-frequency", cell,
sizeof(*cell))) <= 0)
*cell = 0;
}
return (0);
}