From owner-freebsd-drivers@FreeBSD.ORG Wed Nov 7 22:09:29 2007 Return-Path: Delivered-To: freebsd-drivers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5AB2416A419 for ; Wed, 7 Nov 2007 22:09:29 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 188EA13C4BC for ; Wed, 7 Nov 2007 22:09:29 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.1/8.14.1) with ESMTP id lA7M2sZY020917; Wed, 7 Nov 2007 15:02:54 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Wed, 07 Nov 2007 15:06:02 -0700 (MST) Message-Id: <20071107.150602.756907466.imp@bsdimp.com> To: jason.harmening@gmail.com From: "M. Warner Losh" In-Reply-To: <2d1264630711071324s32eda7d7j8d12ccff20df900a@mail.gmail.com> References: <2d1264630711061422r4d76480bp7be0a70823388db3@mail.gmail.com> <2d1264630711071324s32eda7d7j8d12ccff20df900a@mail.gmail.com> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: freebsd-drivers@freebsd.org Subject: Re: iicbus ivars and BUS_ADD_CHILD X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Nov 2007 22:09:29 -0000 In message: <2d1264630711071324s32eda7d7j8d12ccff20df900a@mail.gmail.com> "Jason Harmening" writes: : Hi everyone, : : I've been looking over the 7.0 iicbus code, and I see that the iicbus : driver now uses an ivar to store the address for each child device : (cool!). The ivar is malloc'ed in the iicbus implementation of : BUS_ADD_CHILD, but it doesn't ever appear to be freed. And bus_if.m : doesn't appear to contain a reciprocal for BUS_ADD_CHILD (e.g. : BUS_DELETE_CHILD) that would take care of bus-specific cleanup. Are : ivars just leaked right now when device_delete_child() is called on : the child device, or is the caller of device_delete_child() expected : to free them? Generally, all callers of device_delete_child() are expected to know. Where is that being called? Warner