From patchwork Mon Apr 20 19:50:45 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tobias Jakobi X-Patchwork-Id: 6244021 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id C62999F32B for ; Mon, 20 Apr 2015 19:50:54 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id E9C1320429 for ; Mon, 20 Apr 2015 19:50:53 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id C081120220 for ; Mon, 20 Apr 2015 19:50:52 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 442AA6E3C2; Mon, 20 Apr 2015 12:50:51 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from smtp.math.uni-bielefeld.de (smtp.math.uni-bielefeld.de [129.70.45.10]) by gabe.freedesktop.org (Postfix) with ESMTP id 27E826E3C2 for ; Mon, 20 Apr 2015 12:50:50 -0700 (PDT) Received: from chidori.entropy (unknown [5.147.63.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (Client did not present a certificate) by smtp.math.uni-bielefeld.de (Postfix) with ESMTPSA id A18316100A; Mon, 20 Apr 2015 21:50:48 +0200 (CEST) From: Tobias Jakobi To: dri-devel@lists.freedesktop.org Subject: [PATCH v2] modetest: initialize handles/pitches in set_plane() Date: Mon, 20 Apr 2015 21:50:45 +0200 Message-Id: <1429559445-3494-1-git-send-email-tjakobi@math.uni-bielefeld.de> X-Mailer: git-send-email 2.0.5 Cc: Tobias Jakobi , emil.l.velikov@gmail.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Only the 'offsets' array was initialized to zero. Since bo_create only sets the handles which are necessary, were we passing garbage data to the kernel when calling drmModeAddFB2 later. The issue only seems to appear when passing e.g. NV12 data to the kernel, a case where not only handles[0] is used. I therefore also removed the corresponding comment. v2: Do the same for set_mode(), set_cursors() and test_page_flip(). Signed-off-by: Tobias Jakobi --- tests/modetest/modetest.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c index 5f46efd..27ce380 100644 --- a/tests/modetest/modetest.c +++ b/tests/modetest/modetest.c @@ -964,7 +964,7 @@ page_flip_handler(int fd, unsigned int frame, static int set_plane(struct device *dev, struct plane_arg *p) { drmModePlane *ovr; - uint32_t handles[4], pitches[4], offsets[4] = {0}; /* we only use [0] */ + uint32_t handles[4] = {0}, pitches[4] = {0}, offsets[4] = {0}; uint32_t plane_id = 0; struct bo *plane_bo; uint32_t plane_flags = 0; @@ -1046,7 +1046,7 @@ static int set_plane(struct device *dev, struct plane_arg *p) static void set_mode(struct device *dev, struct pipe_arg *pipes, unsigned int count) { - uint32_t handles[4], pitches[4], offsets[4] = {0}; /* we only use [0] */ + uint32_t handles[4] = {0}, pitches[4] = {0}, offsets[4] = {0}; unsigned int fb_id; struct bo *bo; unsigned int i; @@ -1125,7 +1125,7 @@ static void set_planes(struct device *dev, struct plane_arg *p, unsigned int cou static void set_cursors(struct device *dev, struct pipe_arg *pipes, unsigned int count) { - uint32_t handles[4], pitches[4], offsets[4] = {0}; /* we only use [0] */ + uint32_t handles[4] = {0}, pitches[4] = {0}, offsets[4] = {0}; struct bo *bo; unsigned int i; int ret; @@ -1165,7 +1165,7 @@ static void clear_cursors(struct device *dev) static void test_page_flip(struct device *dev, struct pipe_arg *pipes, unsigned int count) { - uint32_t handles[4], pitches[4], offsets[4] = {0}; /* we only use [0] */ + uint32_t handles[4] = {0}, pitches[4] = {0}, offsets[4] = {0}; unsigned int other_fb_id; struct bo *other_bo; drmEventContext evctx;