Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp6778224pxb; Wed, 17 Feb 2021 13:12:15 -0800 (PST) X-Google-Smtp-Source: ABdhPJyHa7kaD7ob5Qdznm/ND3sCD0ps19D2QpZVgc1jEIQe3BzsQJP0jTu1+XA7QDjFgS1dUjvr X-Received: by 2002:a05:6402:1152:: with SMTP id g18mr777584edw.18.1613596335517; Wed, 17 Feb 2021 13:12:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613596335; cv=none; d=google.com; s=arc-20160816; b=uWC3mifX4RIt5KtgXSUWSddM0CBFxAewoQR7YXlRThxaBGNluFD2zS+DbPENq5EbZ+ mkMC88vERu8GBL7/d6cvfKQtponE2G9Zen5htCYcsr+Jp+FIan1hPQszFOxYryrcGMHu MiIBXp/My3go5WpBgJJVS1VwoNywy/Q8EoQQQjlT5Ctr9XsWioPJy2RSwO2ztGuX5A32 J4UKYfQnDMwdGIW7EnPUvy/80iLxPVP6a8ayrEs1j2v7kZY3F6rQRzAJm6nlHie0boKy fQ4Lu05VYY13Kgpva7zPJxqKiR0xd2CvIbbewqvk7GVRCcKarlqWOmJdjwQVtXd7/J+z VGqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=uYov8BXv5D5oQnwHi6lC0XQdxwUCIQ+VW1GhRhrLhww=; b=xcX2amSkkM7j5Bmi5VOWdJ6akr1N4y7AvXAI0CHgPv7RLXnzU3LuGBDwGMVxDfYQJk +4FO5p8a6IhQ9oSRlFPpSURCcl4jhAyULQhr63yv8yW7N5I6B1cQNZCTRe7OOOEdSRZk R0EcDIOlVP1LINnlq3XVU0QyIp+ERnT9unkEvn/K6Mzn1auxxADHtOKRB9bShOK2AQ4m arUzgzEKlifEf8bb1z3l+qlpT35ebgKZx5UC8hZ7mKUl3Sqk+MPa+NGE+O8f7Uflw9dA 5jNJuncKQ2FMxsCUH3SKpH4QuOJ9oh6R17wBAH+vjY4936Q1S/Mw3EkU5xRqlkpEBFVa RUJw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r11si2793143edc.353.2021.02.17.13.11.50; Wed, 17 Feb 2021 13:12:15 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232860AbhBQTYQ (ORCPT + 99 others); Wed, 17 Feb 2021 14:24:16 -0500 Received: from mx2.suse.de ([195.135.220.15]:48176 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232841AbhBQTYN (ORCPT ); Wed, 17 Feb 2021 14:24:13 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 01A21ABA2; Wed, 17 Feb 2021 19:23:32 +0000 (UTC) Subject: Re: [PATCH v2 04/11] drm/qxl: fix lockdep issue in qxl_alloc_release_reserved To: Gerd Hoffmann , dri-devel@lists.freedesktop.org Cc: Dave Airlie , David Airlie , Daniel Vetter , "open list:DRM DRIVER FOR QXL VIRTUAL GPU" , "open list:DRM DRIVER FOR QXL VIRTUAL GPU" , open list References: <20210217123213.2199186-1-kraxel@redhat.com> <20210217123213.2199186-5-kraxel@redhat.com> From: Thomas Zimmermann Message-ID: <8957d006-c521-292b-0e95-066098ec8b90@suse.de> Date: Wed, 17 Feb 2021 20:23:30 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0 MIME-Version: 1.0 In-Reply-To: <20210217123213.2199186-5-kraxel@redhat.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="g5xlLFvOFFjUKawQ8FM3Kjj3Z5Kdu1uhg" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --g5xlLFvOFFjUKawQ8FM3Kjj3Z5Kdu1uhg Content-Type: multipart/mixed; boundary="5K2XiOgMZEpkZsaQmRkNN3tpTWU2ThwaE"; protected-headers="v1" From: Thomas Zimmermann To: Gerd Hoffmann , dri-devel@lists.freedesktop.org Cc: Dave Airlie , David Airlie , Daniel Vetter , "open list:DRM DRIVER FOR QXL VIRTUAL GPU" , "open list:DRM DRIVER FOR QXL VIRTUAL GPU" , open list Message-ID: <8957d006-c521-292b-0e95-066098ec8b90@suse.de> Subject: Re: [PATCH v2 04/11] drm/qxl: fix lockdep issue in qxl_alloc_release_reserved References: <20210217123213.2199186-1-kraxel@redhat.com> <20210217123213.2199186-5-kraxel@redhat.com> In-Reply-To: <20210217123213.2199186-5-kraxel@redhat.com> --5K2XiOgMZEpkZsaQmRkNN3tpTWU2ThwaE Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable Am 17.02.21 um 13:32 schrieb Gerd Hoffmann: > Call qxl_bo_unpin (which does a reservation) without holding the > release_mutex lock. Fixes lockdep (correctly) warning on a possible > deadlock. >=20 > Fixes: 65ffea3c6e73 ("drm/qxl: unpin release objects") > Signed-off-by: Gerd Hoffmann Acked-by: Thomas Zimmermann > --- > drivers/gpu/drm/qxl/qxl_release.c | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) >=20 > diff --git a/drivers/gpu/drm/qxl/qxl_release.c b/drivers/gpu/drm/qxl/qx= l_release.c > index 716d706ca7f0..f5845c96d414 100644 > --- a/drivers/gpu/drm/qxl/qxl_release.c > +++ b/drivers/gpu/drm/qxl/qxl_release.c > @@ -283,7 +283,7 @@ int qxl_alloc_release_reserved(struct qxl_device *q= dev, unsigned long size, > int type, struct qxl_release **release, > struct qxl_bo **rbo) > { > - struct qxl_bo *bo; > + struct qxl_bo *bo, *free_bo =3D NULL; > int idr_ret; > int ret =3D 0; > union qxl_release_info *info; > @@ -315,8 +315,7 @@ int qxl_alloc_release_reserved(struct qxl_device *q= dev, unsigned long size, > =20 > mutex_lock(&qdev->release_mutex); > if (qdev->current_release_bo_offset[cur_idx] + 1 >=3D releases_per_b= o[cur_idx]) { > - qxl_bo_unpin(qdev->current_release_bo[cur_idx]); > - qxl_bo_unref(&qdev->current_release_bo[cur_idx]); > + free_bo =3D qdev->current_release_bo[cur_idx]; > qdev->current_release_bo_offset[cur_idx] =3D 0; > qdev->current_release_bo[cur_idx] =3D NULL; > } > @@ -324,6 +323,10 @@ int qxl_alloc_release_reserved(struct qxl_device *= qdev, unsigned long size, > ret =3D qxl_release_bo_alloc(qdev, &qdev->current_release_bo[cur_id= x], priority); > if (ret) { > mutex_unlock(&qdev->release_mutex); > + if (free_bo) { > + qxl_bo_unpin(free_bo); > + qxl_bo_unref(&free_bo); > + } > qxl_release_free(qdev, *release); > return ret; > } > @@ -339,6 +342,10 @@ int qxl_alloc_release_reserved(struct qxl_device *= qdev, unsigned long size, > *rbo =3D bo; > =20 > mutex_unlock(&qdev->release_mutex); > + if (free_bo) { > + qxl_bo_unpin(free_bo); > + qxl_bo_unref(&free_bo); > + } > =20 > ret =3D qxl_release_list_add(*release, bo); > qxl_bo_unref(&bo); >=20 --=20 Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 N=C3=BCrnberg, Germany (HRB 36809, AG N=C3=BCrnberg) Gesch=C3=A4ftsf=C3=BChrer: Felix Imend=C3=B6rffer --5K2XiOgMZEpkZsaQmRkNN3tpTWU2ThwaE-- --g5xlLFvOFFjUKawQ8FM3Kjj3Z5Kdu1uhg Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmAtbTIFAwAAAAAACgkQlh/E3EQov+Cu MA//cnHoAHJQ9PF56fAMErvtgYSHBawIIQ11eHErmocSJejf7Ln34v2+NiL+KHasW3q34ptuzNT5 d0KDbQwE2cQfcUNybx+mLZcn2YnB8o+IAkyRM1R3Tn8SC6AevXACinTB1NSISxipjU6iBmtPMWIA HXlqiFvZxUhPGq/demqWXeTubcpq+2YhsPwo4cyZCtMBuFcsbpR06XA3kJhiOVBxTLP8+IqFQVsp hTwKNXOo5+zqIdJvNx2rxIUT2egKjs/t+S+L/pOdnmnW60nP93utc7w/7dwLWbZowU9StTZdJpY/ mWRnsaxmEsAy8NUuKMLKyEYuWvBVkb42NB0gdcQfz/FyrFEpZy5BFROL/Aga16HzqV0jXrHxe9eY amDlCyzJljnUoFKo+Hyth7Ia+sPnwR+dVzVqgwx5VZMjDmYiHmgVuJFdPJH1x0RO4IG9EvkzeIHs yoT500xtIpCIAL2HBcM0i1je7ADkHWvmh8i3fZ+K8c5zyxRHq5+bk0Av92H+wPsMPILQKnui2L4q HS+MpbJpoDtz4iPH9dvUGzogqzpWXmw6ia8zTaiKzBvtKekq3U7skJZk1ebwFnUjTtl2syJSGncl z4ySMYPabg20ZFrrz7H4mXw6Y2Q8FnI5+3Oj5iWLmuWdLZdG0nPV2kUthCefvXqZRXVEwIXNqukm yEI= =AEpE -----END PGP SIGNATURE----- --g5xlLFvOFFjUKawQ8FM3Kjj3Z5Kdu1uhg--