From patchwork Mon Jun 21 05:07:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dongliang Mu X-Patchwork-Id: 75296 X-Patchwork-Delegate: sean@mess.org Received: from vger.kernel.org ([23.128.96.18]) by www.linuxtv.org with esmtp (Exim 4.92) (envelope-from ) id 1lvCAL-008uhx-5c; Mon, 21 Jun 2021 05:08:09 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229576AbhFUFKT (ORCPT + 1 other); Mon, 21 Jun 2021 01:10:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44376 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229487AbhFUFKS (ORCPT ); Mon, 21 Jun 2021 01:10:18 -0400 Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 341AAC061574; Sun, 20 Jun 2021 22:08:04 -0700 (PDT) Received: by mail-pl1-x62f.google.com with SMTP id y13so1755418plc.8; Sun, 20 Jun 2021 22:08:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=TnpsAxmufh915BSD9fnBr85SfXQ0FTkySU1azKoLJlo=; b=G2bPAbjmU3rXSXhvS97FCY0yIZiOUkuubdnMIeZHLWwlfiL5tkL5DOyRQT48LBpSUF cDpsZOBF9kAM/FGEMeOAbdLxpZn3FW9pCU5vi9YOEZ9ljA2zpIAeAv2KFUa3M1DHtnkU HtBktxHxpXImqJLlXD08X1bJQNHW543XZ/gAPJmLC+JkNtLGkjmcg9qXdzzKgX1/D55j 6g26B2sbedDx0ispZXwjcW6hHACVgDcI/t6OldRXjTq98AuOP+W6Eu2cF37jZxuTpZgv T5r9pe6D4o5QNWOsKjbolVrO7YP4Ye1mQpiPQmmLSjMno8E/DZ9hBynl7HVp+RUcdous GIlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=TnpsAxmufh915BSD9fnBr85SfXQ0FTkySU1azKoLJlo=; b=cbdobD+PI7Kwl08Pa5OUM8q8tayGGer7cbTM22HiTi5LgoepesRBKkxDGPrG3HMrfE Nls69IHC14Fkoe6IO41X+DSqInnliY7vs8kk/1/5T1Bk5y8x9iV+42vEKOEnlLCOmVUK Yfh0bK6Wpf9nBQQZbY+nEP2MdkY6J4voAf6IlcvuRw5ywDeSBfcKgEPNe8KMr3YW7LaM hzCFo5YLcecN4khBWQHh+ILdnHHpeshnNg2T8WfZIk2Tne/lgH6x/5+Smep9cStI3Wvb yxKF+PC108CHOQT6+mxBSIKyIMe37eQz2sEBqYFI28PWwR8zdZsT/Iiejj23PiszmAyy OZ5g== X-Gm-Message-State: AOAM532jad83KRsb5wnFn/Nted1HiFA/Fmmv3X/7mk7kgszKiBaS+y4B GCPAom1ecA8Z7g1mWyB8yCq2yl7rACQdV0Vd X-Google-Smtp-Source: ABdhPJwaXjO2k8WYN8MsXwpUlP/BEAapBKBNEjVPC48zRlO1JvXUDro2RDj0ZqlnfR1hG1GZ191CYQ== X-Received: by 2002:a17:902:6902:b029:106:50e3:b2db with SMTP id j2-20020a1709026902b029010650e3b2dbmr16114286plk.35.1624252083630; Sun, 20 Jun 2021 22:08:03 -0700 (PDT) Received: from localhost.localdomain ([45.135.186.71]) by smtp.gmail.com with ESMTPSA id b5sm11808783pgh.41.2021.06.20.22.08.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Jun 2021 22:08:03 -0700 (PDT) From: Dongliang Mu To: Mauro Carvalho Chehab Cc: Dongliang Mu , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/3] media: dvb-usb: break long strings in dvb_usb_device_init Date: Mon, 21 Jun 2021 13:07:26 +0800 Message-Id: <20210621050729.3898275-1-mudongliangabcd@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-LSpam-Score: -3.2 (---) X-LSpam-Report: No, score=-3.2 required=5.0 tests=BAYES_00=-1.9,DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1,FREEMAIL_FORGED_FROMDOMAIN=0.001,FREEMAIL_FROM=0.001,HEADER_FROM_DIFFERENT_DOMAINS=0.5,MAILING_LIST_MULTI=-1,RCVD_IN_DNSWL_LOW=-0.7 autolearn=ham autolearn_force=no Signed-off-by: Dongliang Mu Reported-by: kernel test robot Reported-by: kernel test robot --- drivers/media/usb/dvb-usb/dvb-usb-init.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/media/usb/dvb-usb/dvb-usb-init.c b/drivers/media/usb/dvb-usb/dvb-usb-init.c index 28e1fd64dd3c..edc477cedaa9 100644 --- a/drivers/media/usb/dvb-usb/dvb-usb-init.c +++ b/drivers/media/usb/dvb-usb/dvb-usb-init.c @@ -286,13 +286,15 @@ int dvb_usb_device_init(struct usb_interface *intf, desc = dvb_usb_find_device(udev, &d->props, &cold); if (!desc) { - deb_err("something went very wrong, device was not found in current device list - let's see what comes next.\n"); + deb_err("something went very wrong, + device was not found in current device list.\n"); ret = -ENODEV; goto error; } if (cold) { - info("found a '%s' in cold state, will try to load a firmware", desc->name); + info("found a %s in cold state, will try to load a firmware", + desc->name); ret = dvb_usb_download_firmware(udev, props); if (!props->no_reconnect || ret != 0) goto error; @@ -314,7 +316,7 @@ int dvb_usb_device_init(struct usb_interface *intf, if (du) *du = d; - info("%s successfully initialized and connected.", desc->name); + info("%s is successfully initialized and connected.", desc->name); return 0; error: From patchwork Mon Jun 21 05:07:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dongliang Mu X-Patchwork-Id: 75297 X-Patchwork-Delegate: sean@mess.org Received: from vger.kernel.org ([23.128.96.18]) by www.linuxtv.org with esmtp (Exim 4.92) (envelope-from ) id 1lvCAQ-008uiH-Sd; Mon, 21 Jun 2021 05:08:15 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229876AbhFUFK0 (ORCPT + 1 other); Mon, 21 Jun 2021 01:10:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44396 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229487AbhFUFKX (ORCPT ); Mon, 21 Jun 2021 01:10:23 -0400 Received: from mail-pj1-x102f.google.com (mail-pj1-x102f.google.com [IPv6:2607:f8b0:4864:20::102f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 37646C061574; Sun, 20 Jun 2021 22:08:09 -0700 (PDT) Received: by mail-pj1-x102f.google.com with SMTP id bb10-20020a17090b008ab029016eef083425so11453415pjb.5; Sun, 20 Jun 2021 22:08:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SFuGJeqPjyUwDMBLj8Pxzn5ty0P8RjvWXkQpyPXRDHY=; b=lJ/zMqXZHUZwam+qwVQ00J19klphShZjI3M/4m/c9abVZqIHuRy79wXsPmULPTT32f oDszutihoXeDUhuEv1JKMexGjnBYkYzahVJ1qJSX9njmiWgvlzrvfUQDatW78Q8cThlm VPkWurBdOp9XPAMS6X5vkBu5RE7ppSv3Bq1Vm5EzIfAywfom9yKo2ZiGHcbh72pjElXR 2TH7axLbG36bzpT0GZn4gs2ZG3PIEBRBvouWaV29845LNNS0T0Jp/mnOxjdbJYcbwDyY rPisQQjkGF2OV/KS3RXOzAqihlNaYxJ58j2m03tKhC8DU106YU91TwqQ/FonMdg0VWPs slZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=SFuGJeqPjyUwDMBLj8Pxzn5ty0P8RjvWXkQpyPXRDHY=; b=cLqUiAAAn/f/UPflserlS6TatNaXdHN3yDIDGj3LET+UzXm0wN3Fn1/4mLzgE8bMF1 ZQ6SwAuXZZqvaWHl+oW80XN16RyAGsDIcT23Xh/GX3+ji58e7ITBMsugWMp5sYtPjFPW fBz8AhoQpaPqzd9HGrPDJC80XKwnoitDG6aw3ppgSuT9+RJcVmJCzeq2j+DVaP60/kCz p/x20Dwa6rMpFrFSdEXK6ZIaDJf20U0ku6mrHJ3mlcgLpzvGyOIoZBqm3410UhjHFrkD esdSS87SeLeW741NMzHCUbpx915IFwQX4XwIc8KpbPrVO5H1LxKwsaMuuczQZCh01Mpa kUaQ== X-Gm-Message-State: AOAM532Hs8o73PjDdGJhnFHHx1tMDJKHtTUVBq1ZGA7knL0Ap88JlVnq hkhfH5mBo/OvxRTx8pz7ffU= X-Google-Smtp-Source: ABdhPJxw8lfnAnQLBucC6Fk7J6idNmr1qMG1WqKh1RckeZ4EXb5fSB23Q9FLDV3CUq4EO4eyuHSE+g== X-Received: by 2002:a17:902:b181:b029:fc:c069:865c with SMTP id s1-20020a170902b181b02900fcc069865cmr16414120plr.28.1624252088804; Sun, 20 Jun 2021 22:08:08 -0700 (PDT) Received: from localhost.localdomain ([45.135.186.71]) by smtp.gmail.com with ESMTPSA id b5sm11808783pgh.41.2021.06.20.22.08.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Jun 2021 22:08:08 -0700 (PDT) From: Dongliang Mu To: Mauro Carvalho Chehab Cc: Dongliang Mu , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/3] media: dvb-usb: move kfree(d) to dvb_usb_device_exit Date: Mon, 21 Jun 2021 13:07:27 +0800 Message-Id: <20210621050729.3898275-2-mudongliangabcd@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210621050729.3898275-1-mudongliangabcd@gmail.com> References: <20210621050729.3898275-1-mudongliangabcd@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-LSpam-Score: -3.2 (---) X-LSpam-Report: No, score=-3.2 required=5.0 tests=BAYES_00=-1.9,DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1,FREEMAIL_FORGED_FROMDOMAIN=0.001,FREEMAIL_FROM=0.001,HEADER_FROM_DIFFERENT_DOMAINS=0.5,MAILING_LIST_MULTI=-1,RCVD_IN_DNSWL_LOW=-0.7 autolearn=ham autolearn_force=no As d is allocated in dvb_usb_device_init, so move to the deallocation of d from dvb_usb_exit to dvb_usb_device_exit Signed-off-by: Dongliang Mu --- drivers/media/usb/dvb-usb/dvb-usb-init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/usb/dvb-usb/dvb-usb-init.c b/drivers/media/usb/dvb-usb/dvb-usb-init.c index edc477cedaa9..21ad51be4820 100644 --- a/drivers/media/usb/dvb-usb/dvb-usb-init.c +++ b/drivers/media/usb/dvb-usb/dvb-usb-init.c @@ -147,7 +147,6 @@ static int dvb_usb_exit(struct dvb_usb_device *d) d->props.priv_destroy(d); kfree(d->priv); - kfree(d); return 0; } @@ -333,9 +332,10 @@ void dvb_usb_device_exit(struct usb_interface *intf) char name[40]; usb_set_intfdata(intf, NULL); - if (d != NULL && d->desc != NULL) { + if (d && d->desc) { strscpy(name, d->desc->name, sizeof(name)); dvb_usb_exit(d); + kfree(d); } else { strscpy(name, default_name, sizeof(name)); } From patchwork Mon Jun 21 05:07:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dongliang Mu X-Patchwork-Id: 75298 X-Patchwork-Delegate: sean@mess.org Received: from vger.kernel.org ([23.128.96.18]) by www.linuxtv.org with esmtp (Exim 4.92) (envelope-from ) id 1lvCAY-008uia-EC; Mon, 21 Jun 2021 05:08:23 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230051AbhFUFKd (ORCPT + 1 other); Mon, 21 Jun 2021 01:10:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44434 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229789AbhFUFKb (ORCPT ); Mon, 21 Jun 2021 01:10:31 -0400 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D62A9C061756; Sun, 20 Jun 2021 22:08:15 -0700 (PDT) Received: by mail-pl1-x62d.google.com with SMTP id b1so1097575pls.3; Sun, 20 Jun 2021 22:08:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kMUpJT6SJolW0ymOF8PtGlnKamkYOUcs0svNbBgMhJY=; b=Nudnp+zb14BLhJ0FHsvMYBCcL4Wbt6dELJeu3PBbqKQVXuriixTJmJETbQG0lguS9C 47EygArUq/9STsCyOZBucXahoKt4wL3Qb6atUgE3uwDNTBqulskplXOi4Tpgn1ACAomW 6lH/bR4g8d/891nVEa9+0BJY8UoNTGpr5JMI1MpcElzJGGMVwe3vJWHKY4UqEoYkr+IB WdFXAZ+0GF12KUeAdO0Ov9yomRQqmetesnAvoR1TMCkDHdWJr2d0Vouo40ktpZBsBfQU WtaJY+uw7Quni3TubnodwriNg3mYm52KdRmh66iubwN1LpquGHL54sHlBYtGggXMUuwo n2DQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kMUpJT6SJolW0ymOF8PtGlnKamkYOUcs0svNbBgMhJY=; b=k6JHznv2+SeFVI45ozkMMgOtDNWOI0VVEHp+ohv7BXH+NSq6sKDMqm2VBL44jnZc/Q 7cZN15xpMjN/KsxfQRyy+MgfWWS+Oc43WTTppFigZ1Xa5vH0Eo7mfQt3Ycl/WmLUYgcP SuwjUBCIdF60pMxUfIXkdoh19HlPN2P850ioXeEdQbND1NO+cE+h5R5m/XSrVm+kPDgk dKidzvAQ3PBfXdF0bgCbtS26Dzv2Hp2GOSGDVE2dXNvp8W7LAZfRPrmO7mlGaMu3014f zLdk9S47jh9h4LSHzIh2vaUjU3lfxrD6jqGypkmHFHtmqU2mFSxfcgKqW6CSM55CFl39 Z3jQ== X-Gm-Message-State: AOAM533ICHUKxFudw3srMe8YR4HOA7uRLsAsdx4GsVAcze3y2vnRjUjS 3StW9zMQ5b6nJc+uLlJIOwY= X-Google-Smtp-Source: ABdhPJwOhL0mLsHjkspQhaibd6HaytHoiZFH5K99xa6QKWQiQsLAaPuXd0zkdqryHwwHYb5KxQCAbg== X-Received: by 2002:a17:90b:1bc4:: with SMTP id oa4mr25633384pjb.18.1624252095393; Sun, 20 Jun 2021 22:08:15 -0700 (PDT) Received: from localhost.localdomain ([45.135.186.71]) by smtp.gmail.com with ESMTPSA id b5sm11808783pgh.41.2021.06.20.22.08.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Jun 2021 22:08:14 -0700 (PDT) From: Dongliang Mu To: Mauro Carvalho Chehab , Takashi Iwai , Sean Young Cc: Dongliang Mu , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/3] media: dvb-usb: Fix error handling in dvb_usb_i2c_init Date: Mon, 21 Jun 2021 13:07:28 +0800 Message-Id: <20210621050729.3898275-3-mudongliangabcd@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210621050729.3898275-1-mudongliangabcd@gmail.com> References: <20210621050729.3898275-1-mudongliangabcd@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-LSpam-Score: -3.2 (---) X-LSpam-Report: No, score=-3.2 required=5.0 tests=BAYES_00=-1.9,DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1,FREEMAIL_FORGED_FROMDOMAIN=0.001,FREEMAIL_FROM=0.001,HEADER_FROM_DIFFERENT_DOMAINS=0.5,MAILING_LIST_MULTI=-1,RCVD_IN_DNSWL_LOW=-0.7 autolearn=ham autolearn_force=no In dvb_usb_i2c_init, if i2c_add_adapter fails, it only prints an error message, and then continues to set DVB_USB_STATE_I2C. This affects the logic of dvb_usb_i2c_exit, which leads to that, the deletion of i2c_adap even if the i2c_add_adapter fails. Fix this by returning at the failure of i2c_add_adapter and then move dvb_usb_i2c_exit out of the error handling code of dvb_usb_i2c_init. Fixes: 13a79f14ab28 ("media: dvb-usb: Fix memory leak at error in dvb_usb_device_init()") Signed-off-by: Dongliang Mu --- drivers/media/usb/dvb-usb/dvb-usb-i2c.c | 9 +++++++-- drivers/media/usb/dvb-usb/dvb-usb-init.c | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/media/usb/dvb-usb/dvb-usb-i2c.c b/drivers/media/usb/dvb-usb/dvb-usb-i2c.c index 2e07106f4680..bc4b2abdde1a 100644 --- a/drivers/media/usb/dvb-usb/dvb-usb-i2c.c +++ b/drivers/media/usb/dvb-usb/dvb-usb-i2c.c @@ -17,7 +17,8 @@ int dvb_usb_i2c_init(struct dvb_usb_device *d) if (d->props.i2c_algo == NULL) { err("no i2c algorithm specified"); - return -EINVAL; + ret = -EINVAL; + goto err; } strscpy(d->i2c_adap.name, d->desc->name, sizeof(d->i2c_adap.name)); @@ -27,11 +28,15 @@ int dvb_usb_i2c_init(struct dvb_usb_device *d) i2c_set_adapdata(&d->i2c_adap, d); - if ((ret = i2c_add_adapter(&d->i2c_adap)) < 0) + ret = i2c_add_adapter(&d->i2c_adap); + if (ret < 0) { err("could not add i2c adapter"); + goto err; + } d->state |= DVB_USB_STATE_I2C; +err: return ret; } diff --git a/drivers/media/usb/dvb-usb/dvb-usb-init.c b/drivers/media/usb/dvb-usb/dvb-usb-init.c index 21ad51be4820..ae3f76787279 100644 --- a/drivers/media/usb/dvb-usb/dvb-usb-init.c +++ b/drivers/media/usb/dvb-usb/dvb-usb-init.c @@ -147,6 +147,7 @@ static int dvb_usb_exit(struct dvb_usb_device *d) d->props.priv_destroy(d); kfree(d->priv); + d->priv = NULL; return 0; } @@ -193,8 +194,8 @@ static int dvb_usb_init(struct dvb_usb_device *d, short *adapter_nums) err_adapter_init: dvb_usb_adapter_exit(d); -err_i2c_init: dvb_usb_i2c_exit(d); +err_i2c_init: if (d->priv && d->props.priv_destroy) d->props.priv_destroy(d); err_priv_init: