From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 20C68267B07 for ; Tue, 30 Jun 2026 01:19:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.170 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782782360; cv=none; b=LE4G6eOhs9mwWraC4PicRLLGAo0B8PVQibcM67lxvHlskz+6lbJQvWLCPoeh91nzsB8PUiZcxWeL0NpPxfXBuswBxnpsOiD4mJZDZfnb3I9oy6XuMiIeRpkEb5K+Hjv6Se37SAqSG6Kh7XYySOvJdqsO2lSpPEug3OvgLPin/DI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782782360; c=relaxed/simple; bh=fzv7MFNtYH3uCe8MqrE0bHTwJ3HI80YscXN8lm/yPT8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=vBkQucLssn+0nC5CD72+M6oUntnkgTxq9HzT31dalG8iLcC/qHLTXkuU96czR2PXHNYtIKznh7n8Ea7+bTlGYFwGua5vOBY1oQfla1oYOXmrQCqqFr2bWnMf6N96XHumt2y45ZOxsiIDXX94DTOfi1fk/ThK4jkpTA8xKp4v7NM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FbiJJqEy; arc=none smtp.client-ip=209.85.210.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FbiJJqEy" Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-8478fe07f65so706430b3a.0 for ; Mon, 29 Jun 2026 18:19:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782782350; x=1783387150; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=CG9x15SuRzEgw1/5hGhYCaNcFyGZnCDooTbzdFZHAVE=; b=FbiJJqEyceIuOrWbAb+CK1/87Qp+Xeqx9EJd0hz56avQ5rT491MZenbexkjUMgAv16 0hF663B0LDbnzNARiYxC3HYnFuxpwJyiCuN/1N9WG47u+QvvFp5KlX/ojru/w3kVXLPv QqL+DQd6voYXozGBIjNQKwei6t1J/itxS5sN12BcW9g/jpRrvSxekyIIQdF/TBVqVm1i 8msq1Vd6ZjPvZOLYz//D3wzn/3dmCykhcbi5//GOsGzAkIqSHaASomCb/ngWjcczUbjn rOdHrUPlI70TMMGONAKK/YhmZMeJ+5hnIsEFwdpBpRduUJbRxhMgItQy9yoFhpE+Ncm1 WWFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782782350; x=1783387150; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=CG9x15SuRzEgw1/5hGhYCaNcFyGZnCDooTbzdFZHAVE=; b=O6NCftwqhdYFis/2BG63PCk1AI0TT6j0hEr7orCirqKrr85FYA7rcr1W1VzoFyg1Js c1OAODNYSm4SB5XcJYGmAIblXughFrpVDlwJ2S25DrP8GEFRIgP6Awipw2hm9ITDr/YP s7jNPinjZ/PBcX7ny9nix+4MbdgnwiTFo05GwRhnsOfA46RQHu3hT3R67nxIaN2DD78+ ks283uDEv6EhP0V9PqqrlfgcqZsEN5FA5mBKL2NxPcCiFsP0ok16QwmgfUo8HgTmonSu 3bxB9OJozUfDurPzvBYbaefoja2ZiDek0RhBfHS71bSkRzim0OfUK7im6DCQKXUYxsih EMew== X-Forwarded-Encrypted: i=1; AHgh+Rqaien3c+O31OCF2WRaGdQSfq+8EGZAhuefSxnheUUZRidPcESff5qNhGLMIzvvJaqre4FC+slEV+NM5pA=@vger.kernel.org X-Gm-Message-State: AOJu0YxxweUc66Z0q6R2pEwIfgyP5buWCr72qZ8hEnCz6c2FUY3iNRY8 t2Jm54VTYxZNLpDbK0UHhaJmT10Wj0/FOYglKO25K3Eye+w/gKu80ldOBzDKeNb7 X-Gm-Gg: AfdE7ck3HZcgks6IlT8U5yeMAf86qY+CbgFTJ79peMWXaRqOjsKDwJXBtTpIPiFZL9/ VhcpLlfQAB/Ed2n9Y9DWBlOZpI7kjRbFM0rUA2QzLKdBCxTdxJindgBuR8c226VA74wBh2+A3ww oCQbAxIApDi1eqe/UT+3Tm/0j/ZRlav0pFF//Zo8d2OGyGT8r8hL0y/0++bI9uapS5ue9oYMwKl dHrw9QmQDIXRTDbSPnhVT/EONAe7apeJ5qqD/WQUJaT4RG3buG/UZq+IjpBJOBFfmnd/prLIZmJ we1FoDFeQlAwn38rnYn0v+HZV2GA++FkrqHGKlNCB8mlWPBW1jeqWJ6wogzU7SpM3yisK/3WBb7 JGbjjHomFMdkpx/BypQkkou3dZkSwfReGsifT6ivLg0PknSCxICK3AYl4AmL2j2wrF3ZexkCAgC 4SyHHJnr6gZCOQz4NgDfUuepAU2VlwITpl8Iru9j9ru9Ms7PYgDZvlm7BnUUEAMIla3Nntn63rI 3OPjfWWiRtgx7Sa4+ox X-Received: by 2002:a05:6a00:84c:b0:842:708f:39be with SMTP id d2e1a72fcca58-8479ee9207emr1344406b3a.5.1782782349946; Mon, 29 Jun 2026 18:19:09 -0700 (PDT) Received: from ryzen.lan ([2601:644:8000:7a86::e34]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-8479ff8f959sm692014b3a.3.2026.06.29.18.19.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 18:19:09 -0700 (PDT) From: Rosen Penev To: dri-devel@lists.freedesktop.org Cc: Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , intel-gfx@lists.freedesktop.org (open list:INTEL DRM I915 DRIVER (Meteor Lake, DG2 and old...), linux-kernel@vger.kernel.org (open list) Subject: [PATCH] drm: i915: use kzalloc_flex Date: Mon, 29 Jun 2026 18:19:07 -0700 Message-ID: <20260630011907.1453253-1-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Simplifies allocations by using a flexible array member in this struct. No need to free separately. Signed-off-by: Rosen Penev --- drivers/gpu/drm/i915/gt/intel_gtt.h | 2 +- drivers/gpu/drm/i915/gt/intel_ppgtt.c | 15 +-------------- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_gtt.h b/drivers/gpu/drm/i915/gt/intel_gtt.h index f6f223090760..49b2d2d24fd8 100644 --- a/drivers/gpu/drm/i915/gt/intel_gtt.h +++ b/drivers/gpu/drm/i915/gt/intel_gtt.h @@ -187,7 +187,7 @@ struct i915_page_table { struct i915_page_directory { struct i915_page_table pt; spinlock_t lock; - void **entry; + void *entry[]; }; #define __px_choose_expr(x, type, expr, other) \ diff --git a/drivers/gpu/drm/i915/gt/intel_ppgtt.c b/drivers/gpu/drm/i915/gt/intel_ppgtt.c index 72d8473a448b..20cc59a005c9 100644 --- a/drivers/gpu/drm/i915/gt/intel_ppgtt.c +++ b/drivers/gpu/drm/i915/gt/intel_ppgtt.c @@ -36,16 +36,10 @@ struct i915_page_directory *__alloc_pd(int count) { struct i915_page_directory *pd; - pd = kzalloc_obj(*pd, I915_GFP_ALLOW_FAIL); + pd = kzalloc_flex(*pd, entry, count, I915_GFP_ALLOW_FAIL); if (unlikely(!pd)) return NULL; - pd->entry = kzalloc_objs(*pd->entry, count, I915_GFP_ALLOW_FAIL); - if (unlikely(!pd->entry)) { - kfree(pd); - return NULL; - } - spin_lock_init(&pd->lock); return pd; } @@ -60,7 +54,6 @@ struct i915_page_directory *alloc_pd(struct i915_address_space *vm) pd->pt.base = vm->alloc_pt_dma(vm, I915_GTT_PAGE_SIZE_4K); if (IS_ERR(pd->pt.base)) { - kfree(pd->entry); kfree(pd); return ERR_PTR(-ENOMEM); } @@ -72,12 +65,6 @@ void free_px(struct i915_address_space *vm, struct i915_page_table *pt, int lvl) { BUILD_BUG_ON(offsetof(struct i915_page_directory, pt)); - if (lvl) { - struct i915_page_directory *pd = - container_of(pt, typeof(*pd), pt); - kfree(pd->entry); - } - if (pt->base) i915_gem_object_put(pt->base); -- 2.54.0