From patchwork Mon May 11 09:35:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 11540175 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 65C55912 for ; Mon, 11 May 2020 09:36:33 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 441BB207DD for ; Mon, 11 May 2020 09:36:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="gWwhijgL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 441BB207DD Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 34F1789D7C; Mon, 11 May 2020 09:36:17 +0000 (UTC) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2BCAC6E40C for ; Mon, 11 May 2020 09:36:10 +0000 (UTC) Received: by mail-wm1-x341.google.com with SMTP id e26so17292045wmk.5 for ; Mon, 11 May 2020 02:36:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jiEqWmvJIvSHgBKn6ifo7dJfIKkXuCXmPLyNt/uHVFw=; b=gWwhijgLuPTS+8nLzRuo0lamqr8cs5BEdGK+qadCGO1c6oXTh8zhJNQLm9Ax84uaAV 5vZAfLwnv9AH2FpjefgCnq0CWKfP41C85oiyP+3qzN6P63cBJTes5h4qgbUNhTzwKQYj xm7Ha+UI4mb2GNtbmCdDfmxF5nTQ5+PjQVh0U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jiEqWmvJIvSHgBKn6ifo7dJfIKkXuCXmPLyNt/uHVFw=; b=c5dQXkhhebSVSs7EeVL0QxaiZwN3bMI34KE247jRsWToqtS4haMSlwGFVvj3q3M+x/ 9EARZuQy2KoIuHSSvjNm8QvIlR9Yld+EMAdZTV18j2fykiRTaFeRb8suNFMTV7ufWXSL DI7jHSnjtogVbwT/Gaz+YLG3aUFaAp3H+Ek1lq9ftD0IIXYy/ni/dKANsoRFyBaNnHdy Oc3rF6HMkOrF7hB0iCTctatUK4FoAvbPhMgLykwy87KGjx/c6XsQ8L2K2IQ3ZnPCoxTA acCu5HMksG2NmFQJgEByAyT9AMwWVKJqmPaS2f/zbcZc+LfWdBTCXhfKK3JMQteI8ACK 5mkA== X-Gm-Message-State: AGi0PuZR0Krookhyaj0AxVsNUnhKn8NT1J1mF4mnLQXE2C6d+4wyybZy SuF57MoTzlkJ7373PosesKjN6Q== X-Google-Smtp-Source: APiQypLZA00N1dW8ljSoZlkr+fGgqdXLM+TiFQYvagUpwQkJupGh4RaE4rHmlpkYfRAkx45/ojvw1g== X-Received: by 2002:a1c:5502:: with SMTP id j2mr32498550wmb.56.1589189768830; Mon, 11 May 2020 02:36:08 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id q17sm9013945wmk.36.2020.05.11.02.36.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 May 2020 02:36:08 -0700 (PDT) From: Daniel Vetter To: DRI Development Date: Mon, 11 May 2020 11:35:53 +0200 Message-Id: <20200511093554.211493-9-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200511093554.211493-1-daniel.vetter@ffwll.ch> References: <20200511093554.211493-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 8/9] drm/shmem-helpers: Ensure get_pages is not called on imported dma-buf X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Rob Herring , Daniel Vetter , Intel Graphics Development , =?utf-8?q?Nor?= =?utf-8?q?alf_Tr=C3=B8nnes?= , Gerd Hoffmann , Daniel Vetter Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Just a bit of light paranoia. Also sprinkle this check over drm_gem_shmem_get_sg_table, which should only be called when exporting, same for the pin/unpin functions, on which it relies to work correctly. Cc: Gerd Hoffmann Cc: Rob Herring Cc: Noralf Trønnes Signed-off-by: Daniel Vetter Acked-by: Thomas Zimmermann --- drivers/gpu/drm/drm_gem_shmem_helper.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/gpu/drm/drm_gem_shmem_helper.c b/drivers/gpu/drm/drm_gem_shmem_helper.c index 117a7841e284..f7011338813e 100644 --- a/drivers/gpu/drm/drm_gem_shmem_helper.c +++ b/drivers/gpu/drm/drm_gem_shmem_helper.c @@ -170,6 +170,8 @@ int drm_gem_shmem_get_pages(struct drm_gem_shmem_object *shmem) { int ret; + WARN_ON(shmem->base.import_attach); + ret = mutex_lock_interruptible(&shmem->pages_lock); if (ret) return ret; @@ -225,6 +227,8 @@ int drm_gem_shmem_pin(struct drm_gem_object *obj) { struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); + WARN_ON(shmem->base.import_attach); + return drm_gem_shmem_get_pages(shmem); } EXPORT_SYMBOL(drm_gem_shmem_pin); @@ -240,6 +244,8 @@ void drm_gem_shmem_unpin(struct drm_gem_object *obj) { struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); + WARN_ON(shmem->base.import_attach); + drm_gem_shmem_put_pages(shmem); } EXPORT_SYMBOL(drm_gem_shmem_unpin); @@ -510,6 +516,8 @@ static void drm_gem_shmem_vm_open(struct vm_area_struct *vma) struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); int ret; + WARN_ON(shmem->base.import_attach); + ret = drm_gem_shmem_get_pages(shmem); WARN_ON_ONCE(ret != 0); @@ -611,6 +619,8 @@ struct sg_table *drm_gem_shmem_get_sg_table(struct drm_gem_object *obj) { struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); + WARN_ON(shmem->base.import_attach); + return drm_prime_pages_to_sg(shmem->pages, obj->size >> PAGE_SHIFT); } EXPORT_SYMBOL_GPL(drm_gem_shmem_get_sg_table);