Module Name: src Committed By: riastradh Date: Wed May 10 00:07:58 UTC 2023
Modified Files: src/sys/arch/mips/ralink: ralink_cfi.c src/sys/arch/mips/rmi: rmixl_nand.c Log Message: mips: Use config_detach_children to reduce error branch bugs. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/arch/mips/ralink/ralink_cfi.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/mips/rmi/rmixl_nand.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/mips/ralink/ralink_cfi.c diff -u src/sys/arch/mips/ralink/ralink_cfi.c:1.1 src/sys/arch/mips/ralink/ralink_cfi.c:1.2 --- src/sys/arch/mips/ralink/ralink_cfi.c:1.1 Tue Aug 2 03:38:48 2011 +++ src/sys/arch/mips/ralink/ralink_cfi.c Wed May 10 00:07:58 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: ralink_cfi.c,v 1.1 2011/08/02 03:38:48 cliff Exp $ */ +/* $NetBSD: ralink_cfi.c,v 1.2 2023/05/10 00:07:58 riastradh Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. * All rights reserved. @@ -36,7 +36,7 @@ #include "locators.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ralink_cfi.c,v 1.1 2011/08/02 03:38:48 cliff Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ralink_cfi.c,v 1.2 2023/05/10 00:07:58 riastradh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -178,14 +178,15 @@ static int ra_cfi_detach(device_t self, int flags) { struct ra_cfi_softc *sc = device_private(self); - int rv = 0; + int error; - pmf_device_deregister(self); + error = config_detach_children(self, flags); + if (error) + return error; - if (sc->sc_nordev != NULL) - rv = config_detach(sc->sc_nordev, flags); + pmf_device_deregister(self); bus_space_unmap(sc->sc_cfi.cfi_bst, sc->sc_cfi.cfi_bsh, sc->sc_size); - return rv; + return 0; } Index: src/sys/arch/mips/rmi/rmixl_nand.c diff -u src/sys/arch/mips/rmi/rmixl_nand.c:1.7 src/sys/arch/mips/rmi/rmixl_nand.c:1.8 --- src/sys/arch/mips/rmi/rmixl_nand.c:1.7 Fri Jul 1 19:01:31 2011 +++ src/sys/arch/mips/rmi/rmixl_nand.c Wed May 10 00:07:58 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: rmixl_nand.c,v 1.7 2011/07/01 19:01:31 dyoung Exp $ */ +/* $NetBSD: rmixl_nand.c,v 1.8 2023/05/10 00:07:58 riastradh Exp $ */ /*- * Copyright (c) 2010 Department of Software Engineering, @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rmixl_nand.c,v 1.7 2011/07/01 19:01:31 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rmixl_nand.c,v 1.8 2023/05/10 00:07:58 riastradh Exp $"); #include "opt_flash.h" @@ -235,16 +235,17 @@ static int rmixl_nand_detach(device_t self, int flags) { struct rmixl_nand_softc *sc = device_private(self); - int rv = 0; + int error; - pmf_device_deregister(self); + error = config_detach_children(self, flags); + if (error) + return error; - if (sc->sc_nanddev != NULL) - rv = config_detach(sc->sc_nanddev, flags); + pmf_device_deregister(self); bus_space_unmap(sc->sc_iobus_bst, sc->sc_iobus_bsh, sc->sc_iobus_size); - return rv; + return 0; } static void