Module Name: src Committed By: martin Date: Sat Sep 9 14:56:10 UTC 2023
Modified Files: src/sys/dev/raidframe [netbsd-9]: rf_reconstruct.c Log Message: Pull up following revision(s) (requested by oster in ticket #1729): sys/dev/raidframe/rf_reconstruct.c: revision 1.128 Revision 1.104 actually fixed the issues that were preventing us from freeing the ReconControl structures. So free them and thus also prevent a panic on shutdown due to items not being correctly returned to the pool. Thanks to manu@ for report of the panic, and for initial testing of the changes. To generate a diff of this commit: cvs rdiff -u -r1.122.4.1 -r1.122.4.2 src/sys/dev/raidframe/rf_reconstruct.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/dev/raidframe/rf_reconstruct.c diff -u src/sys/dev/raidframe/rf_reconstruct.c:1.122.4.1 src/sys/dev/raidframe/rf_reconstruct.c:1.122.4.2 --- src/sys/dev/raidframe/rf_reconstruct.c:1.122.4.1 Wed Feb 17 09:34:20 2021 +++ src/sys/dev/raidframe/rf_reconstruct.c Sat Sep 9 14:56:10 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: rf_reconstruct.c,v 1.122.4.1 2021/02/17 09:34:20 martin Exp $ */ +/* $NetBSD: rf_reconstruct.c,v 1.122.4.2 2023/09/09 14:56:10 martin Exp $ */ /* * Copyright (c) 1995 Carnegie-Mellon University. * All rights reserved. @@ -33,7 +33,7 @@ ************************************************************/ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rf_reconstruct.c,v 1.122.4.1 2021/02/17 09:34:20 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_reconstruct.c,v 1.122.4.2 2023/09/09 14:56:10 martin Exp $"); #include <sys/param.h> #include <sys/time.h> @@ -892,24 +892,11 @@ rf_ContinueReconstructFailedDisk(RF_Raid rf_DrainReconEventQueue(reconDesc); - /* XXX As much as we'd like to free the recon control structure - and the reconDesc, we have no way of knowing if/when those will - be touched by IO that has yet to occur. It is rather poor to be - basically causing a 'memory leak' here, but there doesn't seem to be - a cleaner alternative at this time. Perhaps when the reconstruct code - gets a makeover this problem will go away. - */ -#if 0 rf_FreeReconControl(raidPtr); -#endif - #if RF_ACC_TRACE > 0 RF_Free(raidPtr->recon_tracerecs, raidPtr->numCol * sizeof(RF_AccTraceEntry_t)); #endif - /* XXX see comment above */ -#if 0 FreeReconDesc(reconDesc); -#endif return (1); }