Received: by 2002:a05:6358:45e:b0:b5:b6eb:e1f9 with SMTP id 30csp695372rwe; Thu, 25 Aug 2022 07:42:50 -0700 (PDT) X-Google-Smtp-Source: AA6agR6emveRqeoR9Xbl69H9ArtRbuUxSpMvUxjFOfisHt0A7ROFauifY5+BmnjJLgx2LKJUPvHC X-Received: by 2002:a17:90b:1e53:b0:1fb:3aba:372e with SMTP id pi19-20020a17090b1e5300b001fb3aba372emr14514383pjb.34.1661438569762; Thu, 25 Aug 2022 07:42:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1661438569; cv=none; d=google.com; s=arc-20160816; b=iH96cq8bdUPWb+Lx3tJomQQ/fQSuLBoEcsRnj2wvicKEqVlxpbVUKWKKmkYz12qdsH B03a0DrO1+U1qVp1bEDANrONlnhsB45gvPJjocXNpmfSUhluXNQYbVzJGV+CpB8WcvNb ZDdte6EOZ/EF0x7lyMuGcHMklFcxjM/ib10VECRvl3LE2t6A5yQhj28Lq71JY+epQN/L +LaaXMrQyDFlttNRSmW7Hetd9peuiNX1NqsrQylwT/qHIqWq+ppWoxS059yAItw4fI6d am2fUG7TB+AY5pChswYLyOcc43i+TNuUzel1YqzbFY3pd8gFThfspr54W9ChkQr7CpbF WFAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=ENqnnx4fCdy3n3hviwEb32diF5QS23FSgFLZzZYq/aw=; b=df6IPwQsBAkHqacKcA9oCpGm1XEo8S6BghxJxVk26MZhnl1P6avcie3N4eaMqAhrvR A1JxbDCFmrSLstnHPBqYHI79QtLL9d1R+ll0ohUn/+QYIzsbVZChYI4DibhZ4V5MU5sE NXNPWoTsm6p1lf5UcY2ZjM0Muub4IBExHmE1Z8n0nuLCwaOEC+/9Ou67eyg9HHuhSt8j C0vOJMibjE5/VgBXLdWYAc2ZQo6R21KLGK9jKzToB3MTJiqUp08moTKmm3S6HSmvlNQx BNM8Z75WmtskSMD689FDQBz/4OvyecK1Z/MLpmyKwx1mVFmRs6m5H3/AlzJ5j4dP1M1G Nzlw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f10-20020a6547ca000000b0042b68a0d502si527682pgs.346.2022.08.25.07.42.37; Thu, 25 Aug 2022 07:42:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238176AbiHYOUk (ORCPT + 99 others); Thu, 25 Aug 2022 10:20:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60250 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240825AbiHYOSr (ORCPT ); Thu, 25 Aug 2022 10:18:47 -0400 Received: from netrider.rowland.org (netrider.rowland.org [192.131.102.5]) by lindbergh.monkeyblade.net (Postfix) with SMTP id 63966AE9F5 for ; Thu, 25 Aug 2022 07:18:46 -0700 (PDT) Received: (qmail 2280 invoked by uid 1000); 25 Aug 2022 10:18:44 -0400 Date: Thu, 25 Aug 2022 10:18:44 -0400 From: Alan Stern To: Khalid Masum Cc: Greg Kroah-Hartman , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Jack Pham , Manu Gautam Subject: Re: [PATCH v2] usb: ehci: Use endpoint in URB to get maxpacket Message-ID: References: <20220824193813.13129-1-khalid.masum.92@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220824193813.13129-1-khalid.masum.92@gmail.com> X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no 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 On Thu, Aug 25, 2022 at 01:38:13AM +0600, Khalid Masum wrote: > usb_maxpacket() looks up the endpoint number in the pipe which can fail > if the interface or configuration changes before the routine is called. > This is unexpected and may even cause a modulo by zero afterwards. > > So use usb_endpoint_maxp() routine which uses the endpoint stored in URB > to get the maxpacket. > > Addresses-Coverity: 744857 ("Division or modulo by zero") > Addresses-Coverity: 1487371 ("Division or modulo by zero") > Suggested-by: Alan Stern > Signed-off-by: Khalid Masum > --- > Changes since v1: > - Update commit description > - Use usb_endpoint_maxp() instead of checking whether getting maxpacket > failed > - Link: https://lore.kernel.org/lkml/20220823182758.13401-1-khalid.masum.92@gmail.com/ > > drivers/usb/host/ehci-q.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c > index 807e64991e3e..666f5c4db25a 100644 > --- a/drivers/usb/host/ehci-q.c > +++ b/drivers/usb/host/ehci-q.c > @@ -645,7 +645,7 @@ qh_urb_transaction ( > token |= (1 /* "in" */ << 8); > /* else it's already initted to "out" pid (0 << 8) */ > > - maxpacket = usb_maxpacket(urb->dev, urb->pipe); > + maxpacket = usb_endpoint_maxp(&urb->ep->desc); > > /* > * buffer gets wrapped in one or more qtds; > @@ -1218,7 +1218,7 @@ static int ehci_submit_single_step_set_feature( > > token |= (1 /* "in" */ << 8); /*This is IN stage*/ > > - maxpacket = usb_maxpacket(urb->dev, urb->pipe); > + maxpacket = usb_endpoint_maxp(&urb->ep->desc); > > qtd_fill(ehci, qtd, buf, len, token, maxpacket); Acked-by: Alan Stern