Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp163236pxf; Tue, 30 Mar 2021 23:23:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzGroh2jfpMJ/KY9JzWQb0SwiI0Xl6YUqTU4MU1bYdgcwiHhCBGoiTIcM9/ILIudeWisrw4 X-Received: by 2002:a05:6402:181a:: with SMTP id g26mr1694320edy.225.1617171810297; Tue, 30 Mar 2021 23:23:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617171810; cv=none; d=google.com; s=arc-20160816; b=k292aqsSReKxH4J92srpZQzf5+KUUInfRbCh0OAuaKwLxieJGHXadMfJWf3acTbFhc Uux+9VwASSU962BAG0PMCo+9Hvgmky+HKJW7cxOpCuimz2KFJDw3ehmWa87oWnfC+cyN +uxmhS9BTYJeszdiZS4QCvR72KIdxixXjjFV1BSrnRo2dFQwbJiSuSkrlgZnqZ0Jts6A iumASKQg6xcVYfsPBvD0r3EwGJmcuzAaqt4aaO4V5eSXak0sPnmKEH/e2R0bdpjh1+43 FaxkZpvxKeUrZGTW1BIAJfCJpzA7ZR/eN6P+l386FQO7UiIwm6M+vmTM05iYmOrQYrzS k2DQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=xPdGHSIIR00sAQIYSjMd9oGwW07NfsHMGXGmByQwlRc=; b=zpuRDz4H5KoYUAnb4gFAat8WOWFg3DLnLYY5VAiHbT3ZirE3eL2dk+C3XY12BkqMLt i/OHuEbVgE1LAw9gSNv4VQl110dYrWpvuhq4Sw4+BSduKfL0etmpGqGdodYmce5eI0MS sE9HHAQ/7ju3/buCJigLaePDJ9dKO5HYzp79ucH8+EyYIbEoSR3QsCCOu/i6DAE+wEYK nWTuqGVji78wLsnvb5DbSdLNwXsO8JYw3CECQik9cNw+PdNbFBhma9QNQ9MidHtRhovA nrsSEmbjF2vw8lIh/K9lZWDoOG+Rjj2RLbivsYjcniHoJ9nPoxDOhWKmEEK2UaouDThG +edg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@jms.id.au header.s=google header.b=Txxvq0eB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d26si982851edz.20.2021.03.30.23.23.07; Tue, 30 Mar 2021 23:23:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@jms.id.au header.s=google header.b=Txxvq0eB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233723AbhCaGUT (ORCPT + 99 others); Wed, 31 Mar 2021 02:20:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52464 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229497AbhCaGTb (ORCPT ); Wed, 31 Mar 2021 02:19:31 -0400 Received: from mail-qk1-x732.google.com (mail-qk1-x732.google.com [IPv6:2607:f8b0:4864:20::732]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CC002C061574; Tue, 30 Mar 2021 23:19:30 -0700 (PDT) Received: by mail-qk1-x732.google.com with SMTP id g15so18350231qkl.4; Tue, 30 Mar 2021 23:19:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jms.id.au; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=xPdGHSIIR00sAQIYSjMd9oGwW07NfsHMGXGmByQwlRc=; b=Txxvq0eBKd/H8YcrQndy9HA0UYExIhy7stpzgsx2OR1DU9qzBRteahNQ6iB8WFDuO9 61A7Pkcx7uxMi2lkQ/geULAAjdBwSVtXhqUygskJUlAQBzyONk8yTa4CxJRcsIe8/yIO cNAKlsNEwMIWQLTHfVcuqOAPqqeod1JEb+pO8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=xPdGHSIIR00sAQIYSjMd9oGwW07NfsHMGXGmByQwlRc=; b=iWf7cDnoEKL8KG4V3k9sOet5JQAPGjlBq8fjsGDb/c6RGRHRjul0zsIfPXsVoS7ljg lFWdw5iceJuSSYtge5WX4Fs5Z2xhjj2NVKkx51xUH3gNPatpR65ijAu9zfF3vgMsOSC3 dVhTeo10Pv/mOVcpKOW21uD3qpxFUv6PzunmsOd64UzZ8GBQrRhLwbC+fH6q4lYQGe1Q t9tf9UBwTIeceUfmwREkECpwcnOqkqy7qra9mRi+K9OFmeNJKRZUo/15J5Qq3J9u6Kav 4xSbo+E2wiOzX7pGgibqs8eD6WTJXmvGu09bz0XvGI6Xf4GpuTlMO58Kjs6sMMRYaVIb adRw== X-Gm-Message-State: AOAM5335fR8qwg7qQ4eM/WB81uauCCBPl0dBDtYGnC33LpSCQeSVu0cM iFmaXc0a5TGc8KRWdeNG/Nu2+wzF8Uanw4T120A= X-Received: by 2002:a05:620a:c11:: with SMTP id l17mr1705538qki.487.1617171569936; Tue, 30 Mar 2021 23:19:29 -0700 (PDT) MIME-Version: 1.0 References: <20210331045831.28700-1-rentao.bupt@gmail.com> In-Reply-To: <20210331045831.28700-1-rentao.bupt@gmail.com> From: Joel Stanley Date: Wed, 31 Mar 2021 06:19:17 +0000 Message-ID: Subject: Re: [PATCH] usb: gadget: aspeed: fix dma map failure To: Tao Ren Cc: Felipe Balbi , Greg Kroah-Hartman , Andrew Jeffery , kernel test robot , Masahiro Yamada , Sasha Levin , Julia Lawall , Ryan Chen , Thomas Tai , Konrad Rzeszutek Wilk , Christoph Hellwig , Benjamin Herrenschmidt , Robin Murphy , linux-usb@vger.kernel.org, Linux ARM , linux-aspeed , Linux Kernel Mailing List , OpenBMC Maillist , Tao Ren Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 31 Mar 2021 at 05:02, wrote: > > From: Tao Ren > > Currently the virtual port_dev device is passed to DMA API, and this is > wrong because the device passed to DMA API calls must be the actual > hardware device performing the DMA. > > The patch replaces usb_gadget_map_request/usb_gadget_unmap_request APIs > with usb_gadget_map_request_by_dev/usb_gadget_unmap_request_by_dev APIs > so the DMA capable platform device can be passed to the DMA APIs. > > The patch fixes below backtrace detected on Facebook AST2500 OpenBMC > platforms: > > [<80106550>] show_stack+0x20/0x24 > [<80106868>] dump_stack+0x28/0x30 > [<80823540>] __warn+0xfc/0x110 > [<8011ac30>] warn_slowpath_fmt+0xb0/0xc0 > [<8011ad44>] dma_map_page_attrs+0x24c/0x314 > [<8016a27c>] usb_gadget_map_request_by_dev+0x100/0x1e4 > [<805cedd8>] usb_gadget_map_request+0x1c/0x20 > [<805cefbc>] ast_vhub_epn_queue+0xa0/0x1d8 > [<7f02f710>] usb_ep_queue+0x48/0xc4 > [<805cd3e8>] ecm_do_notify+0xf8/0x248 > [<7f145920>] ecm_set_alt+0xc8/0x1d0 > [<7f145c34>] composite_setup+0x680/0x1d30 > [<7f00deb8>] ast_vhub_ep0_handle_setup+0xa4/0x1bc > [<7f02ee94>] ast_vhub_dev_irq+0x58/0x84 > [<7f0309e0>] ast_vhub_irq+0xb0/0x1c8 > [<7f02e118>] __handle_irq_event_percpu+0x50/0x19c > [<8015e5bc>] handle_irq_event_percpu+0x38/0x8c > [<8015e758>] handle_irq_event+0x38/0x4c > > Signed-off-by: Tao Ren Fixes: 7ecca2a4080c ("usb/gadget: Add driver for Aspeed SoC virtual hub") Reviewed-by: Joel Stanley Thanks Tao! > --- > drivers/usb/gadget/udc/aspeed-vhub/core.c | 3 ++- > drivers/usb/gadget/udc/aspeed-vhub/epn.c | 2 +- > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/gadget/udc/aspeed-vhub/core.c b/drivers/usb/gadget/udc/aspeed-vhub/core.c > index be7bb64e3594..d11d3d14313f 100644 > --- a/drivers/usb/gadget/udc/aspeed-vhub/core.c > +++ b/drivers/usb/gadget/udc/aspeed-vhub/core.c > @@ -36,6 +36,7 @@ void ast_vhub_done(struct ast_vhub_ep *ep, struct ast_vhub_req *req, > int status) > { > bool internal = req->internal; > + struct ast_vhub *vhub = ep->vhub; > > EPVDBG(ep, "completing request @%p, status %d\n", req, status); > > @@ -46,7 +47,7 @@ void ast_vhub_done(struct ast_vhub_ep *ep, struct ast_vhub_req *req, > > if (req->req.dma) { > if (!WARN_ON(!ep->dev)) > - usb_gadget_unmap_request(&ep->dev->gadget, > + usb_gadget_unmap_request_by_dev(&vhub->pdev->dev, > &req->req, ep->epn.is_in); > req->req.dma = 0; > } > diff --git a/drivers/usb/gadget/udc/aspeed-vhub/epn.c b/drivers/usb/gadget/udc/aspeed-vhub/epn.c > index 02d8bfae58fb..cb164c615e6f 100644 > --- a/drivers/usb/gadget/udc/aspeed-vhub/epn.c > +++ b/drivers/usb/gadget/udc/aspeed-vhub/epn.c > @@ -376,7 +376,7 @@ static int ast_vhub_epn_queue(struct usb_ep* u_ep, struct usb_request *u_req, > if (ep->epn.desc_mode || > ((((unsigned long)u_req->buf & 7) == 0) && > (ep->epn.is_in || !(u_req->length & (u_ep->maxpacket - 1))))) { > - rc = usb_gadget_map_request(&ep->dev->gadget, u_req, > + rc = usb_gadget_map_request_by_dev(&vhub->pdev->dev, u_req, > ep->epn.is_in); > if (rc) { > dev_warn(&vhub->pdev->dev, > -- > 2.17.1 >