Looks good to me if you want to commit it, thanks!

Scott

Ruslan Ermilov wrote:
On Sun, Jan 18, 2004 at 02:45:02PM +0200, Ruslan Ermilov wrote:

Scott,

Attached is the patch that fixes memory leak according to the below report.


Attached is the corrected patch that doesn't do a waiting malloc() while interrupts are blocked. Yes I know that splbio() is a no-op these days. ;)


On Fri, Jan 16, 2004 at 04:09:34PM -0800, Paul Twohey wrote:

---------------------------------------------------------
[BUG]  though we should demote things that are not locals.
/u2/engler/mc/freebsd/sys/i386/compile/GENERIC/../../../dev/ips/ips.c:148:ips_add_waiting_command:ERROR:LEAK:148:154:
 pointer=waiter from RO=malloc(-1) [s=550,pop=551,pr=1.00] [rank=med] leaked! [z=1.0] 
[success=5]

        ips_command_t *command;
        ips_wait_list_t *waiter;
        unsigned long memflags = 0;
        if(IPS_NOWAIT_FLAG & flags)
                memflags = M_NOWAIT;
Start --->
        waiter = malloc(sizeof(ips_wait_list_t), M_DEVBUF, memflags);
        if(!waiter)
                return ENOMEM;
        mask = splbio();
        if(sc->state & IPS_OFFLINE){
                splx(mask);
Error --->
                return EIO;
        }
        command = SLIST_FIRST(&sc->free_cmd_list);
        if(command && !(sc->state & IPS_TIMEOUT)){
---------------------------------------------------------



Cheers,



------------------------------------------------------------------------


Index: ips.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ips/ips.c,v
retrieving revision 1.6
diff -u -p -r1.6 ips.c
--- ips.c       27 Nov 2003 08:37:36 -0000      1.6
+++ ips.c       18 Jan 2004 13:16:00 -0000
@@ -169,6 +169,7 @@ static int ips_add_waiting_command(ips_s
        mask = splbio();
        if(sc->state & IPS_OFFLINE){
                splx(mask);
+               free(waiter, M_DEVBUF);
                return EIO;
        }
        command = SLIST_FIRST(&sc->free_cmd_list);


_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to