From patchwork Tue May 13 07:45:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tvrtko Ursulin X-Patchwork-Id: 890492 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 390531F2382 for ; Tue, 13 May 2025 07:45:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.97.179.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747122343; cv=none; b=YSTzTwHEPZC5wC72XaRBlu9N20iEyLKilhaY5imBZpQg5ig6ScqD14p5nP6bq1UPmjl+cxjBCej18cBGacIrpmHfGe6L1aa4txeQ7LGsZGruSIrBbZVITlb6GT04O5brJeA/C0zOEGWllUkvJmb6DkMsX5aufqxaT0jMUHQlyiM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747122343; c=relaxed/simple; bh=yJBE/0qDD9ST41lYTH/1LCULg4ix2ROZ8UTAefBmQfs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nY5ZGAG+UOjZwKlBtyeCxJ+vVpTiN/QJ8rdcSJgxykTv9MlIR7m0iH0lnny4L8thSaWWzzgFpVfRN0yPtQh2fh46X8IyZ0CH+J70lY4pn3gaPvl9Yg4twN8KYJDRN471j0QUi7J5KDjZgS+qJ7NEZd7YgmovRb7lWjwUOtzQm2Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=igalia.com; spf=pass smtp.mailfrom=igalia.com; dkim=pass (2048-bit key) header.d=igalia.com header.i=@igalia.com header.b=nJzzwRtj; arc=none smtp.client-ip=213.97.179.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=igalia.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=igalia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=igalia.com header.i=@igalia.com header.b="nJzzwRtj" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=QAQu03T+0Cw7dpCbcuwxezen/s/XSrGtmte1ESndrNA=; b=nJzzwRtj5rV4zm2BpXSExInOyl o+FiA6T2ZBQBZoFyP9bdpBf+plLyFBsh6DtlQcaCevNGUUSxKZ2II6aBlcQiqALNTWX0jQ9c26Txm m4ZabxWLa2XvffNwzC66rHXryigcue+Q/koh/Bx7DeCiff+f7w8RsAgU1BCzpvatumBQVU1KQBp8i imXydBDHX/27eYLMER9jc1g4xr2vUa9GWYNNz8k+enWVPlG5opJGbHUWsYTdAp8hNxEl820KZEa40 I4P4eRHmjhTL6qbHbssnUkiRrrpLxYPL2O8ULOpsIhKL73Eda7xJpHLg6To5RxLCTm8VAB5DHMTXI nANvQSUA==; Received: from [81.79.92.254] (helo=localhost) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1uEkF5-007Tvi-M3; Tue, 13 May 2025 09:45:30 +0200 From: Tvrtko Ursulin To: dri-devel@lists.freedesktop.org Cc: Rob Clark , Sumit Semwal , Gustavo Padovan , =?utf-8?q?Christian_K=C3=B6nig?= , Matthew Brost , Lucas De Marchi , Rodrigo Vivi , amd-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org, kernel-dev@igalia.com, Tvrtko Ursulin Subject: [RFC v3 08/10] sync_file: Protect access to driver and timeline name Date: Tue, 13 May 2025 08:45:11 +0100 Message-ID: <20250513074513.81727-9-tvrtko.ursulin@igalia.com> X-Mailer: git-send-email 2.48.0 In-Reply-To: <20250513074513.81727-1-tvrtko.ursulin@igalia.com> References: <20250513074513.81727-1-tvrtko.ursulin@igalia.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Protect the access to driver and timeline name which otherwise could be freed as dma-fence exported is signalling fences. Signed-off-by: Tvrtko Ursulin --- drivers/dma-buf/sync_file.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/dma-buf/sync_file.c b/drivers/dma-buf/sync_file.c index 212df4b849fe..ad87116baa24 100644 --- a/drivers/dma-buf/sync_file.c +++ b/drivers/dma-buf/sync_file.c @@ -136,11 +136,13 @@ char *sync_file_get_name(struct sync_file *sync_file, char *buf, int len) } else { struct dma_fence *fence = sync_file->fence; + dma_fence_access_begin(); snprintf(buf, len, "%s-%s%llu-%lld", dma_fence_driver_name(fence), dma_fence_timeline_name(fence), fence->context, fence->seqno); + dma_fence_access_end(); } return buf; @@ -262,6 +264,8 @@ static long sync_file_ioctl_merge(struct sync_file *sync_file, static int sync_fill_fence_info(struct dma_fence *fence, struct sync_fence_info *info) { + dma_fence_access_begin(); + strscpy(info->obj_name, dma_fence_timeline_name(fence), sizeof(info->obj_name)); strscpy(info->driver_name, dma_fence_driver_name(fence), @@ -273,6 +277,8 @@ static int sync_fill_fence_info(struct dma_fence *fence, ktime_to_ns(dma_fence_timestamp(fence)) : ktime_set(0, 0); + dma_fence_access_end(); + return info->status; }