From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.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 07AC23CA4AB for ; Sun, 14 Jun 2026 16:58:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781456299; cv=none; b=mT1T3EL0f6zC6hglc91T4w96V7OpDEPVeNFAv/IslfCpgSvKIfWPvpVdhvmG0ycGyH6FruRVBQoiZJO/duKs5WYL2WPdd2Oijr7rR4nQG0WPcFGZyzygC/7niPyCubV3jd31plWBkZv9maArDaTElKQSaAk0Xec8Sv40uSvE3GQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781456299; c=relaxed/simple; bh=6BLfx3k/fCodQVzAj+Lom4ebu1O8ZhSi0TevNjpof2Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ix1z5ScAVMU5yOIVtYjVgXytgB1QYovOgH7e+3IBa/169gcPD8yZkHiFmFnw3OzAGZVuw5pg51Ctvm2/XyQVkAKbzY2iRquX28tWOVY6RgD2ruzWZDXwb7+OTfcM1Uy0asyGUHZHMueYexuWOIYzvC9O837AvBXeDHw+AvK7kkE= 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=MIdRA6Oo; arc=none smtp.client-ip=209.85.214.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="MIdRA6Oo" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-2bf20f6be6bso18831515ad.3 for ; Sun, 14 Jun 2026 09:58:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781456297; x=1782061097; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bEaZ0qrTzljcueJLN9W3Ve3AoI5SNdLgoSasxNY4Atc=; b=MIdRA6OoN5uJVftpYBF+elsfe+OtiU4R2RdT5jZ9r+LcrBpoe3RNBh+d0fndDK1Ha7 GQYtWN1bIEkHa5lKDNjiYVephRVRDlGTbs06PcC9eOyVR3hXhnzv6tefBp67/z8kQQle LAsmWmKcSyPf58IyYhiLb5CF3ypeZ7Fo5FCh0b2XCka1iS8thIj6yfXVifyTKb8odmub 5elhb/jxoFxCx+GYk+l+kmRXlarYuv9Ymetu8SAh1Mcud3KT3Rx1Ckfckk88xlUfKmoH Jbhnluz9N7A0tIyTaP7YDjJTPGGJrWxpP5YulO6NvZZD7bXQUMc870MCZy5uKQ+cgB8v 2p1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781456297; x=1782061097; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=bEaZ0qrTzljcueJLN9W3Ve3AoI5SNdLgoSasxNY4Atc=; b=jqa4bD0ZfdqHNneW1Zab+jICaMXl49KX3TyoAUyNx/tPeRPIrSJ11sVpLaOLLwx7aM MlSkoL5qC5FGNDQ5UzK1jZsp8yLYPOdwAePFVFsdRowg80uXP3yjjH6ebBPUjVUpjFfH 7LWNMlXJvJPDPEjpNxbJPW5Wqw5mKHyx+RnQ+xYT2V9TP9sBvDykwpDecGiZi5hwbJ0J oaJBe1Xiuha+66Qxtv/GxK9jyoPx3fzjM0Mfhi3OB7KIqOJcU4CnkXsqL6RijjdvxFcD A2BtqLRzjnwIR4Ygb0/nEJuz274gcBok6WF84VG+EZCoYNaCLLUUvsxobg6CBw4JUncJ kyFA== X-Forwarded-Encrypted: i=1; AFNElJ/2NixUYRCJ7HfguPId+djpFYalwlviU7rF38F/DSm9erNbrpKZMoJhAykQgcFCi27Nw5vZU7HNfV0EKko=@vger.kernel.org X-Gm-Message-State: AOJu0YzFIeDPGcGLFBRUXAQb6Eq99/hI+V4TcyK2LbGQkjdfjO3WRd/1 NrtC3xjx0+7jmZ0dkUMT+HzO6paR22STetSos5RsKjxXxi3H6H1sqU0K X-Gm-Gg: Acq92OH7bENqQZZq3NDME8/YV2mnhYUT1PYkldMpbpa9gKtq0henlRnBPtRR5slRN3/ IKy0j7Rud3H6aronY3/FY87MSGkffCGB/HTpGKSwOZX52pkXlpwJKee/YJHDMwKFRi6p7R/3o3S gSGDxoY9b4J1HcKJ+ccKfDAFga2Tk+GEST+TnVqMjiKzNDNsizx70UGCGh4nw397Qz5zyteu0Bj 5m+KVgkW7zrgi9WUfrPe7V0U/lzGEYm99GraIeE80WPDbwUNuQ2UHutkAHy1Sw9qHXSEMOwcEOU Uc3MuoWgbFFzGXS4KG8GoFLjL0yNHp9vCWr343M49UhroOyDn274So6hEx4hkUqZCDwb79Ej7nO kNDSNqRq810/a1E6n87tMsXWYfDnjRyfqsvJWREW0AoNTCyde6occsS0Jc67uzHiuy1+fEgnzEc vppA7dObIAZCDmInThHvyjAiRR7an5AmDnNP1HwL89hj5rn419UkMy X-Received: by 2002:a17:902:d2ca:b0:2c0:b6c7:2273 with SMTP id d9443c01a7336-2c40ff3a3e9mr122864435ad.3.1781456297348; Sun, 14 Jun 2026 09:58:17 -0700 (PDT) Received: from localhost.localdomain ([49.207.217.37]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c42f2e5590sm85284025ad.14.2026.06.14.09.58.14 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sun, 14 Jun 2026 09:58:17 -0700 (PDT) From: Biren Pandya To: linux-media@vger.kernel.org, mchehab@kernel.org Cc: Biren Pandya , linux-kernel@vger.kernel.org Subject: [PATCH 19/22] media: usb: em28xx: Add missing media_entity_cleanup() Date: Sun, 14 Jun 2026 22:25:56 +0530 Message-ID: <20260614165630.3896-20-birenpandya@gmail.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260614165630.3896-1-birenpandya@gmail.com> References: <20260614165630.3896-1-birenpandya@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The media_entity_pads_init() (or media_entity_init()) function initializes the media entity, but the driver forgets to call media_entity_cleanup() in the error paths and remove function. Add the missing calls to fix the API violation and prevent potential future memory leaks. Signed-off-by: Biren Pandya --- drivers/media/usb/em28xx/em28xx-video.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/media/usb/em28xx/em28xx-video.c b/drivers/media/usb/em28xx/em28xx-video.c index 4a0ce9c5ee4b..70baf93aa8f8 100644 --- a/drivers/media/usb/em28xx/em28xx-video.c +++ b/drivers/media/usb/em28xx/em28xx-video.c @@ -1006,6 +1006,7 @@ static void em28xx_v4l2_media_release(struct em28xx *dev) if (!INPUT(i)->type) return; media_device_unregister_entity(&dev->input_ent[i]); + media_entity_cleanup(&dev->input_ent[i]); } #endif } @@ -1136,9 +1137,11 @@ static void em28xx_v4l2_create_entities(struct em28xx *dev) "failed to initialize input pad[%d]!\n", i); ret = media_device_register_entity(dev->media_dev, ent); - if (ret < 0) + if (ret < 0) { dev_err(&dev->intf->dev, "failed to register input entity %d!\n", i); + media_entity_cleanup(ent); + } } if (dev->board.decoder == EM28XX_BUILTIN) { @@ -1157,8 +1160,10 @@ static void em28xx_v4l2_create_entities(struct em28xx *dev) dev_err(&dev->intf->dev, "failed to initialize decoder pads %d!\n", ret); ret = media_device_register_entity(dev->media_dev, v4l2->decoder); - if (ret < 0) + if (ret < 0) { dev_err(&dev->intf->dev, "failed to register decoder entity %d!\n", ret); + media_entity_cleanup(v4l2->decoder); + } } #endif @@ -2403,11 +2408,13 @@ static int em28xx_v4l2_fini(struct em28xx *dev) video_device_node_name(&v4l2->vbi_dev)); video_unregister_device(&v4l2->vbi_dev); } + media_entity_cleanup(&v4l2->vbi_dev.entity); if (video_is_registered(&v4l2->vdev)) { dev_info(&dev->intf->dev, "V4L2 device %s deregistered\n", video_device_node_name(&v4l2->vdev)); video_unregister_device(&v4l2->vdev); } + media_entity_cleanup(&v4l2->vdev.entity); v4l2_ctrl_handler_free(&v4l2->ctrl_handler); v4l2_device_unregister(&v4l2->v4l2_dev); @@ -2961,6 +2968,7 @@ static int em28xx_v4l2_init(struct em28xx *dev) if (ret) { dev_err(&dev->intf->dev, "unable to register video device (error=%i).\n", ret); + media_entity_cleanup(&v4l2->vdev.entity); goto unregister_dev; } @@ -2995,6 +3003,7 @@ static int em28xx_v4l2_init(struct em28xx *dev) if (ret < 0) { dev_err(&dev->intf->dev, "unable to register vbi device\n"); + media_entity_cleanup(&v4l2->vbi_dev.entity); goto unregister_dev; } } -- 2.50.1 (Apple Git-155)