From patchwork Thu Oct 16 09:39:44 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= X-Patchwork-Id: 5089531 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 31336C11AC for ; Thu, 16 Oct 2014 09:40:02 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 6DC11201CE for ; Thu, 16 Oct 2014 09:40:01 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 61C13201ED for ; Thu, 16 Oct 2014 09:40:00 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A00706E211; Thu, 16 Oct 2014 02:39:58 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-lb0-f180.google.com (mail-lb0-f180.google.com [209.85.217.180]) by gabe.freedesktop.org (Postfix) with ESMTP id 751756E0B1 for ; Thu, 16 Oct 2014 02:39:56 -0700 (PDT) Received: by mail-lb0-f180.google.com with SMTP id n15so2428173lbi.25 for ; Thu, 16 Oct 2014 02:39:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:mime-version:content-type :content-transfer-encoding; bh=5KH7sMCb2yG2FKJim2Vw1WX2HIyFtHc7DIO02c1cfWg=; b=QENa6YT9ivvokZjkIlc7ptAeTAEqK+YxO+nsgOn3mBGvrUDNlaqqUZn0yJK4qhYYXc 61SgYY4nUYBsx+LvHWIiqp3mCX0vWAcnhf8hcabVrUPxZyKBxDdVHMdOJ8gPUoUtVaqY D7WS4QkgwVMwlzS+8bu6AMEIUk7OunoR60FBBRsws1GQWSh6L9mECgMsLuZN7iEUHwjP 0sj+6D8XZVvPkms+NN0bFyELD5m40/kXoViTzeAWVII3E3gi+ujj52hRQ1soynYkXRQs fcTyFkqjZayh6pw/2N6z9toTJaL50FQ64AEpYmqLDDDqsdDxGVE/ankIMPgMwXrTcyug pRxg== X-Received: by 10.153.7.107 with SMTP id db11mr167150lad.35.1413452395387; Thu, 16 Oct 2014 02:39:55 -0700 (PDT) Received: from localhost ([62.156.150.204]) by mx.google.com with ESMTPSA id l1sm7582374lbj.20.2014.10.16.02.39.53 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Oct 2014 02:39:54 -0700 (PDT) From: "=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?=" X-Google-Original-From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: dri-devel@lists.freedesktop.org Subject: [PATCH qxl] qxl: don't create too large primary surface Date: Thu, 16 Oct 2014 11:39:44 +0200 Message-Id: <1413452384-20223-1-git-send-email-marcandre.lureau@redhat.com> X-Mailer: git-send-email 1.9.3 MIME-Version: 1.0 Cc: airlied@redhat.com, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-3.3 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, RCVD_IN_SORBS_WEB, T_DKIM_INVALID, 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 Limit primary to qemu vgamem size, to avoid reaching qemu guest bug "requested primary larger than framebuffer" on resizing screen too large to fit. Remove unneeded and misleading variables. Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1127552 Signed-off-by: Marc-André Lureau --- drivers/gpu/drm/qxl/qxl_display.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c index 5d7ea24..98a344c 100644 --- a/drivers/gpu/drm/qxl/qxl_display.c +++ b/drivers/gpu/drm/qxl/qxl_display.c @@ -523,7 +523,6 @@ static int qxl_crtc_mode_set(struct drm_crtc *crtc, struct qxl_framebuffer *qfb; struct qxl_bo *bo, *old_bo = NULL; struct qxl_crtc *qcrtc = to_qxl_crtc(crtc); - uint32_t width, height, base_offset; bool recreate_primary = false; int ret; int surf_id; @@ -553,9 +552,10 @@ static int qxl_crtc_mode_set(struct drm_crtc *crtc, if (qcrtc->index == 0) recreate_primary = true; - width = mode->hdisplay; - height = mode->vdisplay; - base_offset = 0; + if (bo->surf.stride * bo->surf.height > qdev->vram_size) { + DRM_ERROR("Mode doesn't fit in vram size (vgamem)"); + return -EINVAL; + } ret = qxl_bo_reserve(bo, false); if (ret != 0) @@ -569,10 +569,10 @@ static int qxl_crtc_mode_set(struct drm_crtc *crtc, if (recreate_primary) { qxl_io_destroy_primary(qdev); qxl_io_log(qdev, - "recreate primary: %dx%d (was %dx%d,%d,%d)\n", - width, height, bo->surf.width, - bo->surf.height, bo->surf.stride, bo->surf.format); - qxl_io_create_primary(qdev, base_offset, bo); + "recreate primary: %dx%d,%d,%d\n", + bo->surf.width, bo->surf.height, + bo->surf.stride, bo->surf.format); + qxl_io_create_primary(qdev, 0, bo); bo->is_primary = true; }