From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jon Smirl Subject: Re: [PATCH] add NULL short circuit to fb_dealloc_cmap() Date: Sun, 17 Jul 2005 16:22:50 -0400 Message-ID: <9e473391050717132233347d25@mail.gmail.com> References: <200507172043.41473.jesper.juhl@gmail.com> Reply-To: Jon Smirl Mime-Version: 1.0 Content-Transfer-Encoding: 7BIT Return-path: In-Reply-To: <200507172043.41473.jesper.juhl@gmail.com> Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-Id: Cc: linux-kernel@vger.kernel.org, linux-fbdev-devel@lists.sourceforge.net, Geert Uytterhoeven On 7/17/05, Jesper Juhl wrote: > Resource freeing functions should generally be safe to call with NULL pointers. > Why? > - there is some precedence in the kernel for this for deallocation functions. > - removes the need for callers to check pointers for NULL. > - space is saved overall by less code to test pointers for NULL all over the place. > - removes possible NULL pointer dereferences when a caller forgot to check. > > This patch makes fb_dealloc_cmap() safe to call with a NULL pointer argument. The fb cmap copde would be a lot simpler if it did everything with a single allocation instead of five. Make a super cmap struct: struct fb_super_cmap { struct fb_cmap cmap; __u16 red[255]; __u16 blue[255]; __u16 green[255]; __u16 transp[255]; } Then adjust the code as need. Have the embedded cmap struct point to the fields in the super_cmap and the drivers don't have to be changed. -- Jon Smirl jonsmirl@gmail.com