Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp3850720ybi; Tue, 18 Jun 2019 07:29:29 -0700 (PDT) X-Google-Smtp-Source: APXvYqxGe7Ss4itnM1iYqW8V4lpUiLDkuc7qfybbNUbSCA2+ePcZxeFq+DY1ZWwvoFx9R8Upr0wa X-Received: by 2002:a17:902:6903:: with SMTP id j3mr38551723plk.247.1560868169229; Tue, 18 Jun 2019 07:29:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560868169; cv=none; d=google.com; s=arc-20160816; b=NhkdPht6EPW6jzJC9wtkI30Mplqh50lODQcjAd43hQtTajvQ+ltUf2tWrH7JMDc96z Lf8WKuZyigiLNIRwzs66O1BBnTszLQcI4uTmUo9KBQWvaIJs2I3sOjJJ3YUlWrHyZb5I skwanYgnqN0GMDf95Eliv7avk62s1Qhd5sncL8A1/Y5kOVzMPJGIpeHhf3C2PzPcu4ms iygE/aiaxNLfUcODFr4rYUBeiIR2ldT9s53AGmT7xr7//cfRWGPAZuZDfLeCxTz3Pohh oW86iPpMe+znn5Xbk3/H8eiKHEoZesfqMQxQ9NaDzts9b8/zjavXCi3ZaDdip5QPzPh+ UIZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=E1/I1Ufg34C1B6zIIvwm9i0iJRfJjNFEn+RuFULwkks=; b=sKoBTRZpBdAxPwwRzzrnoF2Sm0W6jWGi7R7pySUDXiOEWynB66Tdg+I/sgr3l7xwY8 /pEY5qZwv6pbN0Cc2vT02xk2LsOW9d47BK5uacG7JVR1jZuOv95uja8mn3/gAFntIMhg K+XsVXKJ4PaBFSfyw0549qUlxfLGsFxZ5XVJ0l5IMCSq9OMHT9DJTn3GLHYbZqB82o5r Lnw0t5PbeOu/EG93PeRbGU4qY5rZY2DbrLmB3if9khfYXOE/XS5Gq/zU/WNBlodDkZzx A2JnA27P7mxtyDoWXIyuWUr+2UvAfQu96w8eQJ3Ov4iapF0+K0x5lVk55GP4wwaP+rTL VQ+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="X/uim5G3"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q10si2452985pjq.46.2019.06.18.07.29.13; Tue, 18 Jun 2019 07:29:29 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="X/uim5G3"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729341AbfFRO2t (ORCPT + 99 others); Tue, 18 Jun 2019 10:28:49 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:46744 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725919AbfFRO2t (ORCPT ); Tue, 18 Jun 2019 10:28:49 -0400 Received: by mail-pg1-f195.google.com with SMTP id v9so7772154pgr.13; Tue, 18 Jun 2019 07:28:48 -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=E1/I1Ufg34C1B6zIIvwm9i0iJRfJjNFEn+RuFULwkks=; b=X/uim5G3SmB9Xn2yHbi9R3F9S7lYpaRSc3ObBExc0ZSS7XysMJ6XJP/zBscub2V7k4 NN3zK4x8BkffqHiiYqCfVpo4BZ28/fmHjG9iE5M4czIysaZaYINWD51MA46HmTC5nOv5 HA0J0+S+vp+onfN4Lmk02VrBmgW2/tLbejUoUGFUfGM6A3OGCOOax2HYIM6FNl4K0Cfm S0n/PCUYXsOu8u2kcA5nWKVstg1LtBss7WkBBdXLpiu2QGrMxQKW7r9ajuO0wDZ5NBtX EM0nVm/iwtgpxHL5hjjcEJCY5vuKjQAMrJccyI8K0l2HcsTGgGra4K4P/lHLQj03nkQH u7nQ== 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=E1/I1Ufg34C1B6zIIvwm9i0iJRfJjNFEn+RuFULwkks=; b=mJeYEM1mSTnMOng5Eue3OPp3o6HEQ81lPznfyGJEvi9aRvfQsFH1YV1hx3cl81k/dK T8JKx4KtEdSiMLF93NLE9DdEfw8LmH7VbSG+WowYS0K0Bg5ImT/uJlLjRKREmwMSxuka Sq5DXBEh83ftxnzv/xazKCiuSIOVPuQjx8dp5rL4y5UBN6N3Vta3BPAV7RO02Q2YFEGi 9PyLwxUMs0FST/QuGpFwkkqqQ/akgyWDeUsItHjVH3+j6gDJPaaHVkmn7aAMZSIYwlOf 7WxIUiqAztRvGZBPKQpBPg77eIJtqdIyLwmErOXwHyBaVjsOc/sVSqCONK3xHUtkKWSE HSng== X-Gm-Message-State: APjAAAXBLHCXcKO144k08ztliCuJLA+aqkjHcSDmdOm0qiM27zEVZq14 GFXuz8NyeG2GBX0DIg2EJqQKjs8s X-Received: by 2002:a63:fe51:: with SMTP id x17mr3106520pgj.61.1560868128219; Tue, 18 Jun 2019 07:28:48 -0700 (PDT) Received: from localhost.localdomain ([125.142.23.13]) by smtp.googlemail.com with ESMTPSA id d6sm13902340pgf.55.2019.06.18.07.28.46 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Tue, 18 Jun 2019 07:28:47 -0700 (PDT) From: Suwan Kim To: shuah@kernel.org, valentina.manea.m@gmail.com, gregkh@linuxfoundation.org Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Suwan Kim Subject: [PATCH] usbip: Implement map_urb_for_dma function for vhci to skip dma mapping Date: Tue, 18 Jun 2019 23:28:17 +0900 Message-Id: <20190618142817.16844-1-suwan.kim027@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org vhci doesn’t do dma for remote device. Actually, the real dma operation is done by network card driver. So, vhci doesn’t use and need dma address of transfer buffer of urb. But hcd provides dma mapping function by defualt in usb_hcd_submit_urb() and it causes unnecessary dma mapping which will be done again at NIC driver and it wastes CPU cycles. So, implement map_urb_for_dma function for vhci in order to skip the dma mapping procedure. Signed-off-by: Suwan Kim --- drivers/usb/usbip/vhci_hcd.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/usb/usbip/vhci_hcd.c b/drivers/usb/usbip/vhci_hcd.c index 667d9c0ec905..9df4d9e36788 100644 --- a/drivers/usb/usbip/vhci_hcd.c +++ b/drivers/usb/usbip/vhci_hcd.c @@ -1287,6 +1287,13 @@ static int vhci_free_streams(struct usb_hcd *hcd, struct usb_device *udev, return 0; } +static int vhci_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb, + gfp_t mem_flags) +{ + dev_dbg(hcd->self.controller, "vhci does not map urb for dma\n"); + return 0; +} + static const struct hc_driver vhci_hc_driver = { .description = driver_name, .product_desc = driver_desc, @@ -1302,6 +1309,7 @@ static const struct hc_driver vhci_hc_driver = { .urb_dequeue = vhci_urb_dequeue, .get_frame_number = vhci_get_frame_number, + .map_urb_for_dma = vhci_map_urb_for_dma, .hub_status_data = vhci_hub_status, .hub_control = vhci_hub_control, -- 2.20.1