From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915: Use a temporary va_list for two-pass string handling Date: Sat, 21 Sep 2013 00:28:53 +0200 Message-ID: <20130920222853.GR32145@phenom.ffwll.local> References: <1379668859-21238-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <1379668859-21238-1-git-send-email-chris@chris-wilson.co.uk> Sender: stable-owner@vger.kernel.org To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org, Mika Kuoppala , Daniel Vetter , stable@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org On Fri, Sep 20, 2013 at 10:20:59AM +0100, Chris Wilson wrote: > In > > commit edc3d8848dc9fe2a470316363dab8ef211d77e01 > Author: Mika Kuoppala > Date: Thu May 23 13:55:35 2013 +0300 > > drm/i915: avoid big kmallocs on reading error state > > we introduce a two-pass mechanism for splitting long strings being > formatted into the error-state. The first pass finds the length, and the > second pass emits the right portion of the string into the accumulation > buffer. Unfortunately we use the same va_list for both passes, resulting > in the second pass reading garbage off the end of the argument list. As > the two passes are only used for boundaries between read() calls, the > corruption is only rarely seen. > > This fixes the root cause behind > > commit baf27f9b17bf2f369f3865e38c41d2163e8d815d > Author: Chris Wilson > Date: Sat Jun 29 23:26:50 2013 +0100 > > drm/i915: Break up the large vsnprintf() in print_error_buffers() > > Signed-off-by: Chris Wilson > Cc: Mika Kuoppala > Cc: Daniel Vetter > Cc: stable@vger.kernel.org Picked up for -fixes, thanks for the patch. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch