From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) (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 EF28539B4AF for ; Tue, 10 Mar 2026 02:59:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773111547; cv=none; b=qgh1MkS3XVA3RcG6Gt5S70aMWYowxmugGcIdyF1aNk1cLjOcrfGK/mZmDQk3kkfSkLxg43xZIJDm4LqwbA9IYKNuX+kgw/JlLQ8Fv2479elZ1eI9c+Zj2um4HX/srQQLph8tuf4a8XCmGvJ0dD7vcBpgBQuNVpmXoMsk4AOqdbI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773111547; c=relaxed/simple; bh=dkDiQ8T/dS7rcScVGiSUtmbWrvdcICmLsgYu0GSicG4=; h=Date:From:To:CC:Subject:In-Reply-To:References:Message-ID: MIME-Version:Content-Type; b=FSASgZqOnlo4ei9YoSfYpAjqNiryhi3zgTpeXU7H0PZOH3KVhR5lTq3nasXzVlbgbV5BV5BsJG0oaKI5GFYCFHIxuYehi1KGaqtT91itNK0xhG3mbLYwTDIC9VVhaV59tsS1aeT9mJbGknITUDZsZzA11A8O/YsSDvJEczEVgnE= 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=GJuKL/IU; arc=none smtp.client-ip=209.85.216.42 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="GJuKL/IU" Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-359832fc558so7104464a91.0 for ; Mon, 09 Mar 2026 19:59:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773111545; x=1773716345; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:references :in-reply-to:user-agent:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to; bh=yS9VzDgzb4tGHuCe+hXBByU7p4QSJ0iEjmhSlRsitWM=; b=GJuKL/IUKvD2+RmSIE4v4kl+hmNp+95QKBMgn9EhZQzGnS5j2SgoXnqQKNV9uyi5jx fU3KPLyKJJO6jllDkbBzFPoN2ylIJL4+TEYHaRvAfEQNRR4X6Fgun86A0ATOm+wCE9S2 0WSnvSVc9HUmQnJYM928Mx7oYN4rNDzj3aH81KtYPdlHay6PtQQ4SOB7RqA01YJ6wuLX MU0AyYZaKus1iSv8IT2L8HOkcUnYNKGVcrKxwZQXM+mIAKHDBF2Bfbnm4zXUj4HIwOIJ 3P3eASvbkHIvk3+QFHrlCgPvAicx7oNyVKgRe9z6eCYYrOqsa1mSmcleAqiZ0yfIBm19 m6pA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773111545; x=1773716345; h=content-transfer-encoding:mime-version:message-id:references :in-reply-to:user-agent:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=yS9VzDgzb4tGHuCe+hXBByU7p4QSJ0iEjmhSlRsitWM=; b=coBEsim7cipi96DBjrnO+ww1Mlpe6I7zOFOnc/paZ9hppBLufgfYR5TR+nBJ5SrUh4 C+SLqcOCWWDC+XUvglMidcSggPPIUGsY3PKDH0Af3XspNXYnw/gaQh1bFcUtscjw1A16 HsMlcvzp9xLwpJ3fd1E+Xhg6txt9HLoPc16w0a/76E1kBMadT0A+BocOM/UH4/F8G63C E7LTU4xrDaRtTyGgSdslVIKMKrJWBvIOBZUCrxWUZMqkSp5OlkJcppT5PZlVoPe6SjCi eJ6XB3smsFUdEDqsLH0P2AesI2gLdxycXvdCcXOx4gUzxHOveKe4p81t1SUknDUwfYM/ LFmw== X-Forwarded-Encrypted: i=1; AJvYcCVkbTTtBe0yzawTpooYXPCoaT9rs1o7aGWb/bX/1C+Vi4jKo0XO9hHl5VLoB2+LJyClYQ6kfbdi/ea168E=@vger.kernel.org X-Gm-Message-State: AOJu0Yzq6cKr1t9pBH3luNUBwfWFlxixGytj4WZqd/rQSyhAggHTfeK/ pPe2YHOy9Qf9H0G4chZ4wfox3FnH6UtanTHhx2qaUFUae8Kdq0nu8ko8 X-Gm-Gg: ATEYQzxp3nAwVZWqY6JTyqprgbtyhY1yAmUr/s7Q73cGPqDmmn+mQsmTJJ7hTXD/MSG 6Ie62Jm2SbLqPk9LpoAhEE/W0aQqwJKDs/L2PlMf5D6u2jT/sls4mDXqLfteurfdqvi8C5ag5ZG D3lwS+aztv6OPbCJqV+wd/8fbKxatE06nzkpyZRwR2Ik8J/NOocAdG/rICupY7kyYp2GPRaWSxO zzjF6w/rIvfAPUUmdhaVRi0sxOMaNEsixUYQtBSAZIGvb1QBj5YhzR4uWq3PUGGOvJnXtLquMu7 C3YLIPGnswDGcboJZRjb2rZzIlNVH8cobYEt5VD2Yshm4CiB9npkRUClcBva58xDUEJoX8Og5Qy lVsxKd5bdXs6cHYtqRiAXRs09bhKI997t62xds/qAEKSTO5cxqMPPtgQ14dMynsuOLVhqo3A8H7 GZTJUwR+k6F+fEUtw3VH1iO44vNGPE7Mruxw== X-Received: by 2002:a17:90b:1d43:b0:356:24f0:af0c with SMTP id 98e67ed59e1d1-359be30827fmr12323882a91.17.1773111545240; Mon, 09 Mar 2026 19:59:05 -0700 (PDT) Received: from ehlo.thunderbird.net ([2401:4900:53d0:5b96::e3a:5d35]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359f08c4289sm1115534a91.17.2026.03.09.19.59.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 09 Mar 2026 19:59:04 -0700 (PDT) Date: Tue, 10 Mar 2026 08:29:00 +0530 From: Sanjay Chitroda To: Frank Li CC: mirela.rabulea@nxp.com, mchehab@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-media@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, skhan@linuxfoundation.org Subject: Re: [PATCH] media: imx-jpeg: convert kzalloc() to devm_kzalloc() User-Agent: Thunderbird for Android In-Reply-To: References: <20260307210404.1428894-1-sanjayembedded@gmail.com> Message-ID: <4C4017F0-1288-4B08-B2D6-C038C884AAAA@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 9 March 2026 9:24:20=E2=80=AFpm IST, Frank Li wr= ote: >On Sun, Mar 08, 2026 at 02:34:04AM +0530, Sanjay Chitroda wrote: >> From: Sanjay Chitroda >> >> The driver allcoates memory using kzalloc() and frees it in the relase >> path=2E since the allocated memory is tied to the lifetime of the devic= e, >> devm_kzalloc() can be used instead=2E > >static const struct v4l2_file_operations mxc_jpeg_fops =3D { > =2Eowner =3D THIS_MODULE, > =2Eopen =3D mxc_jpeg_open, > =2Erelease =3D mxc_jpeg_release, > =2Epoll =3D v4l2_m2m_fop_poll, > =2Eunlocked_ioctl =3D video_ioctl2, > =2Emmap =3D v4l2_m2m_fop_mmap, >}; > >Look like it is not true=2E =2Eopen() should be called only when device o= pen, >not at probe()? You are correct=2E Since the context structure is allocated in =2Eopen() and released in =2Erelease(), its lifetime is tied to the file handle rather than the device=2E Using devm_kzalloc() would defer freeing the memory until device removal, which could cause memory accumulation across multiple open()/close() cycles=2E I'll drop this change=2E > >Frank > >> >> Using device-managed allocation simplifies the error handling paths and >> remove the need for manual cleanup=2E >> >> No functional change intended=2E >> >> Signed-off-by: Sanjay Chitroda >> --- >> drivers/media/platform/nxp/imx-jpeg/mxc-jpeg=2Ec | 11 +++-------- >> 1 file changed, 3 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg=2Ec b/drivers= /media/platform/nxp/imx-jpeg/mxc-jpeg=2Ec >> index b558700d1d96=2E=2Ebd4b5f08a85c 100644 >> --- a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg=2Ec >> +++ b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg=2Ec >> @@ -2200,14 +2200,12 @@ static int mxc_jpeg_open(struct file *file) >> struct mxc_jpeg_ctx *ctx; >> int ret =3D 0; >> >> - ctx =3D kzalloc(sizeof(*ctx), GFP_KERNEL); >> + ctx =3D devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); >> if (!ctx) >> return -ENOMEM; >> >> - if (mutex_lock_interruptible(&mxc_jpeg->lock)) { >> - ret =3D -ERESTARTSYS; >> - goto free; >> - } >> + if (mutex_lock_interruptible(&mxc_jpeg->lock)) >> + return -ERESTARTSYS; >> >> v4l2_fh_init(&ctx->fh, mxc_vfd); >> v4l2_fh_add(&ctx->fh, file); >> @@ -2246,8 +2244,6 @@ static int mxc_jpeg_open(struct file *file) >> v4l2_fh_del(&ctx->fh, file); >> v4l2_fh_exit(&ctx->fh); >> mutex_unlock(&mxc_jpeg->lock); >> -free: >> - kfree(ctx); >> return ret; >> } >> >> @@ -2754,7 +2750,6 @@ static int mxc_jpeg_release(struct file *file) >> v4l2_m2m_ctx_release(ctx->fh=2Em2m_ctx); >> v4l2_fh_del(&ctx->fh, file); >> v4l2_fh_exit(&ctx->fh); >> - kfree(ctx); >> mutex_unlock(&mxc_jpeg->lock); >> >> return 0; >> -- >> 2=2E34=2E1 >>