Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp862996rdb; Wed, 6 Dec 2023 01:58:25 -0800 (PST) X-Google-Smtp-Source: AGHT+IH6JSYJ0o/TiLT04ZlqM6iMrL1Iiaxda9Pw4qxheL4nmioXVRXwYeHtrPN/5CFN13IR4riU X-Received: by 2002:a17:902:e812:b0:1bc:edd:e891 with SMTP id u18-20020a170902e81200b001bc0edde891mr4251168plg.1.1701856705368; Wed, 06 Dec 2023 01:58:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701856705; cv=none; d=google.com; s=arc-20160816; b=KzNzzBUn5uo2ycft/LgK7hC90XvKivyUCJJ4T81wnfElF4WtBDQ+RGaTaBnPjp3Lth w5F5yYTx8sZ8daIpCOEzU/YV6NAY7iOSY9Mthi2GrEOv2zZUIkV3MRtt92wRLtwstNeU VAC5XhjOyIRU5+Gz8XiG9Hy9D0X9xyMC1yPNYfxxW83qt5F2vWfsWNg4hTmMKsCEBOIO zYLrXQEK+BoAxbsZR8Ex4wRwAS8Elel047rzF3yaj/Fusq8qFZTLwMTRG9k1sNpGQKPM 3uAPAmhli+9h15b/U4MRAiteeTqptEDqXw7IAfZf3E9ZMR1BPFWT/oxZcsLt9yuM3/ba feyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:autocrypt :from:references:cc:to:content-language:subject:user-agent :mime-version:date:message-id; bh=klADkZQ/tInE+hbdwFFE4tNjjjxHq86dR/dLJCiorbg=; fh=8dn3R873AoQ421wSzYXUJ7MIRTenV3BqwdsyB2L3fYM=; b=Oqdd0oua6pbTyO4RrV+5f9a00So3+IbkOn8Cpx7hOW+hO4Kv7vYXyoInWFgoOZrsxB SXY9aAcHdEjX4gewRljVUPgJfESIQv0uNQbxExD4V2zUymsdXt6L7deqjhWKYo6MmXc4 xPAcNgQ/+3nhcwcDrSCRAL34BZyQnwYHY2LC/0zwwe9miubNIz8YqCWFu43yEFOlABSX uf3kPVIz1ilCUoJZson2ZUXcKqiJYk8k1I6fAThaw5LP38rXMSlhxP/aRgA0ci8AXMaq JGNQuv1LBssXTjEgHLSNqw4FuhOF4PyaSeTgNxH4HpGZt75nBhXWZM2pSU0deZF3GR8R 7nmg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=xs4all.nl Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id k125-20020a632483000000b0059779ae58a0si1142827pgk.465.2023.12.06.01.58.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Dec 2023 01:58:25 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=xs4all.nl Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 577EF80C9CB5; Wed, 6 Dec 2023 01:58:24 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1377300AbjLFJ6M (ORCPT + 99 others); Wed, 6 Dec 2023 04:58:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57888 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1377365AbjLFJ6K (ORCPT ); Wed, 6 Dec 2023 04:58:10 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8AA3DD45 for ; Wed, 6 Dec 2023 01:58:14 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3132AC433C7; Wed, 6 Dec 2023 09:58:12 +0000 (UTC) Message-ID: Date: Wed, 6 Dec 2023 10:58:11 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] [media] usbtv: Add error handling for usb_submit_urb in usbtv_audio_start Content-Language: en-US, nl To: Haoran Liu , mchehab@kernel.org Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org References: <20231130033735.36013-1-liuhaoran14@163.com> From: Hans Verkuil Autocrypt: addr=hverkuil@xs4all.nl; keydata= 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 In-Reply-To: <20231130033735.36013-1-liuhaoran14@163.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Wed, 06 Dec 2023 01:58:24 -0800 (PST) Hi Haoran, On 30/11/2023 04:37, Haoran Liu wrote: > This patch introduces improved error handling for the usb_submit_urb call > in the usbtv_audio_start function. Prior to this change, the function did > not handle the scenario where usb_submit_urb could fail, potentially > leading to inconsistent state and unreliable audio streaming. > > Although the error addressed by this patch may not occur in the current > environment, I still suggest implementing these error handling routines > if the function is not highly time-sensitive. As the environment evolves > or the code gets reused in different contexts, there's a possibility that > these errors might occur. Addressing them now can prevent potential > debugging efforts in the future, which could be quite resource-intensive. > > Signed-off-by: Haoran Liu > --- > drivers/media/usb/usbtv/usbtv-audio.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/usb/usbtv/usbtv-audio.c b/drivers/media/usb/usbtv/usbtv-audio.c > index 333bd305a4f9..81d6d54fd12c 100644 > --- a/drivers/media/usb/usbtv/usbtv-audio.c > +++ b/drivers/media/usb/usbtv/usbtv-audio.c > @@ -172,6 +172,7 @@ static void usbtv_audio_urb_received(struct urb *urb) > static int usbtv_audio_start(struct usbtv *chip) > { > unsigned int pipe; > + int err; > static const u16 setup[][2] = { > /* These seem to enable the device. */ > { USBTV_BASE + 0x0008, 0x0001 }, > @@ -216,7 +217,15 @@ static int usbtv_audio_start(struct usbtv *chip) > usbtv_set_regs(chip, setup, ARRAY_SIZE(setup)); > > usb_clear_halt(chip->udev, pipe); > - usb_submit_urb(chip->snd_bulk_urb, GFP_ATOMIC); > + err = usb_submit_urb(chip->snd_bulk_urb, GFP_ATOMIC); > + if (err) { > + dev_err(&chip->udev->dev, > + "usb_submit_urb failed: %d\n", err); > + kfree(chip->snd_bulk_urb->transfer_buffer); > + usb_free_urb(chip->snd_bulk_urb); > + chip->snd_bulk_urb = NULL; > + return err; > + } This can be improved a bit. Add a new label in the clean up path to do the kfree, and just go to to that label. In the error clean up part you now need to return 'err' at the end, so make sure you also initialize 'err' to -ENOMEM to ensure the correct error value is returned if usb_alloc_urb fails. It's a bit cleaner that way and avoids duplicate cleanup paths. Regards, Hans > > return 0; >