Date: Sun, 13 Dec 2015 09:05:55 +0000 (UTC) From: Michal Meloun <mmel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r292159 - head/sys/dev/fdt Message-ID: <201512130905.tBD95tqO068513@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mmel Date: Sun Dec 13 09:05:55 2015 New Revision: 292159 URL: https://svnweb.freebsd.org/changeset/base/292159 Log: SIMPLEBUS: Don't panic if child device doesn't have devinfo set. Strictly speaking, missing devinfo is error which can be caused by instantiating child using device_add_child() instead of BUS_ADD_CHILD(). However, we can tolerate it. Approved by: kib (mentor) Modified: head/sys/dev/fdt/simplebus.c Modified: head/sys/dev/fdt/simplebus.c ============================================================================== --- head/sys/dev/fdt/simplebus.c Sun Dec 13 08:27:14 2015 (r292158) +++ head/sys/dev/fdt/simplebus.c Sun Dec 13 09:05:55 2015 (r292159) @@ -304,6 +304,8 @@ simplebus_get_devinfo(device_t bus __unu struct simplebus_devinfo *ndi; ndi = device_get_ivars(child); + if (ndi == NULL) + return (NULL); return (&ndi->obdinfo); } @@ -313,6 +315,8 @@ simplebus_get_resource_list(device_t bus struct simplebus_devinfo *ndi; ndi = device_get_ivars(child); + if (ndi == NULL) + return (NULL); return (&ndi->rl); } @@ -380,6 +384,8 @@ simplebus_print_res(struct simplebus_dev { int rv; + if (di == NULL) + return (0); rv = 0; rv += resource_list_print_type(&di->rl, "mem", SYS_RES_MEMORY, "%#lx"); rv += resource_list_print_type(&di->rl, "irq", SYS_RES_IRQ, "%ld");
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201512130905.tBD95tqO068513>