From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754636AbbIYLee (ORCPT ); Fri, 25 Sep 2015 07:34:34 -0400 Received: from mail-wi0-f177.google.com ([209.85.212.177]:33412 "EHLO mail-wi0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752611AbbIYLec (ORCPT ); Fri, 25 Sep 2015 07:34:32 -0400 Date: Fri, 25 Sep 2015 13:34:29 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Pavel Machek Cc: Peter Teoh , Tomi Valkeinen , Jean-Christophe Plagniol-Villard , Jyri Sarha , omap , linux-fbdev@vger.kernel.org, LKML , Sebastian Reichel , Aaro Koskinen , Tony Lindgren , Nishanth Menon Subject: Re: omapdss: Division by zero in kernel Message-ID: <20150925113429.GF27119@pali> References: <201507241803.42891@pali> <20150819081139.GB15712@pali> <20150917051644.GA6665@amd> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20150917051644.GA6665@amd> User-Agent: Mutt/1.5.23.1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thursday 17 September 2015 07:16:44 Pavel Machek wrote: > > > > if (image->depth == 1) { > > > if (p->fix.visual == FB_VISUAL_TRUECOLOR || > > > p->fix.visual == FB_VISUAL_DIRECTCOLOR) { > > > fgcolor = ((u32*)(p->pseudo_palette))[image->fg_color]; > > > bgcolor = ((u32*)(p->pseudo_palette))[image->bg_color]; > > > } else { > > > fgcolor = image->fg_color; > > > bgcolor = image->bg_color; > > > } > > > > > > if (32 % bpp == 0 && !start_index && !pitch_index && > > > ((width & (32/bpp-1)) == 0) && > > > bpp >= 8 && bpp <= 32) > > > fast_imageblit(image, p, dst1, fgcolor, bgcolor); > > > else > > > slow_imageblit(image, p, dst1, fgcolor, bgcolor, > > > start_index, pitch_index); > > > } else > > > color_imageblit(image, p, dst1, start_index, pitch_i > > > > > > > > > Notice that bpp is not checked for zero, and thus bpp==0 is totally > > > feasible? resulting in 32/bpp crashing the kernel? > > > > > > > Hm... this could really be a problem! But how to patch it? Which branch > > should be called (fast_ or slow_ function) if bpp is zero? > > > > And is there some way to force kernel to dump backtrace into dmesg when > > division by zero occur? > > You can do WARN_ON(bpp==1) ... and should probably return in that > case. > > Pavel Does not make sense to call slow_ function? In that if condition check also that bpp is nonzero... -- Pali Rohár pali.rohar@gmail.com