Module Name: src Committed By: martin Date: Sun May 4 09:05:39 UTC 2014
Modified Files: src/sys/arch/sparc64/sparc64: ofw_machdep.c Log Message: The OF_test_method() function takes an instance handle, not a phandle, and returns 0 on success. Pointed out by Mark Cave-Ayland. To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/sys/arch/sparc64/sparc64/ofw_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/sparc64/sparc64/ofw_machdep.c diff -u src/sys/arch/sparc64/sparc64/ofw_machdep.c:1.41 src/sys/arch/sparc64/sparc64/ofw_machdep.c:1.42 --- src/sys/arch/sparc64/sparc64/ofw_machdep.c:1.41 Tue Jan 7 20:11:35 2014 +++ src/sys/arch/sparc64/sparc64/ofw_machdep.c Sun May 4 09:05:39 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ofw_machdep.c,v 1.41 2014/01/07 20:11:35 palle Exp $ */ +/* $NetBSD: ofw_machdep.c,v 1.42 2014/05/04 09:05:39 martin Exp $ */ /* * Copyright (C) 1996 Wolfgang Solfrank. @@ -34,7 +34,7 @@ #include "opt_multiprocessor.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ofw_machdep.c,v 1.41 2014/01/07 20:11:35 palle Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ofw_machdep.c,v 1.42 2014/05/04 09:05:39 martin Exp $"); #include <sys/param.h> #include <sys/buf.h> @@ -500,29 +500,14 @@ prom_get_msgbuf(int len, int align) cell_t phys_lo; } args; paddr_t addr; - int rooth; - int is_e250 = 1; - - /* E250s and E450s tend to have buggy PROMs that break on test-method */ - /* XXX - need to find the reason why this breaks someday */ - if ((rooth = OF_finddevice("/")) != -1) { - char name[80]; - - if ((OF_getprop(rooth, "name", &name, sizeof(name))) != -1) { - if (strcmp(name, "SUNW,Ultra-250") - && strcmp(name, "SUNW,Ultra-4")) - is_e250 = 0; - } else prom_printf("prom_get_msgbuf: cannot get \"name\"\r\n"); - } else prom_printf("prom_get_msgbuf: cannot open root device \r\n"); if (memh == -1 && ((memh = get_memory_handle()) == -1)) { prom_printf("prom_get_msgbuf: cannot get memh\r\n"); return -1; } - if (is_e250) { - prom_printf("prom_get_msgbuf: Cannot recover msgbuf on E250\r\n"); - } else if (OF_test("test-method") == 0) { - if (OF_test_method(memh, "SUNW,retain") != 0) { + if (OF_test("test-method") == 0) { + if (OF_test_method(OF_instance_to_package(memh), + "SUNW,retain") == 0) { args.name = ADR2CELL(&"call-method"); args.nargs = 5; args.nreturns = 3;