From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 64429C77B7C for ; Wed, 10 May 2023 16:34:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D8A006B0071; Wed, 10 May 2023 12:34:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D39246B0072; Wed, 10 May 2023 12:34:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C00FE6B0074; Wed, 10 May 2023 12:34:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id AE68A6B0071 for ; Wed, 10 May 2023 12:34:26 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 39C57C046E for ; Wed, 10 May 2023 16:34:26 +0000 (UTC) X-FDA: 80774893332.14.9A41256 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf09.hostedemail.com (Postfix) with ESMTP id 5111B14000B for ; Wed, 10 May 2023 16:34:22 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=H8dalrmU; spf=pass (imf09.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1683736462; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=c+QqxpiG1U+G+dOtpx1ITq0GjqRCMSQvjjIZjS6KV1Q=; b=7D5i4UbTDFCjW7NNs0OcP2gNPBneDLhnS23GafrMNcTjwPTLp5ExBfQRtbgE7qlINtQDZN 1ddvom9eoieWiTrX+pPJ+YJA1gbgaPXJU6UjITYUMBe1svlj/3Da9TarBOtxveYfwEkwON z5YXiDRUCA8WS5ps/TivHVNzwOZwwCk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1683736462; a=rsa-sha256; cv=none; b=q9Zx3+Yyutjwo7t7WjmgUZH0+heRcyab1BNGB9V/O5XgtAFFudI639nnBtaVaCX2ZmQ+0V DEC0xOpd/cbhkVf7+MaIxebZnYRIUZESN8SwUKlCdCoax80ypQBvnM17FayOOaMOrpfQ7R I9nWVxZNb8W1Gu7Z0KFkRpNaoM3GGc8= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=H8dalrmU; spf=pass (imf09.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1683736461; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=c+QqxpiG1U+G+dOtpx1ITq0GjqRCMSQvjjIZjS6KV1Q=; b=H8dalrmUObVeQnzjSPK/HgGXomIFqvd2N3o5srKlVhHFDiyHEW+kYAx5dMzH2lYyHxLk1h tl979B2/K+3+ilXPjIyo2A8NEqLLEgm/2qX3FS8KiVm5KxYvOCmMUbmMViDPviSILzbs26 zITsfyeZKIUQeg4QW1NOCEt5336Vyfs= Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-589-IFgqMD6eM6-TyKS8ZtRUlw-1; Wed, 10 May 2023 12:34:18 -0400 X-MC-Unique: IFgqMD6eM6-TyKS8ZtRUlw-1 Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-24de504c5fcso7433219a91.2 for ; Wed, 10 May 2023 09:34:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683736457; x=1686328457; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=c+QqxpiG1U+G+dOtpx1ITq0GjqRCMSQvjjIZjS6KV1Q=; b=FyXQ4vQ+H8ro3BJU4JfygTGTncAqk3PjqXVxWU8B1pkoxD8neNmsSPcu34vvDXYuxT LwElPONFEw7rKA2HJgPe5qs5QfUIAxcVmWbbWDfgSd/TgsThkYvY2J8q+Mp66PYg+7Qa bj+CwVsfHqAFs3sVOkAHBo746iaDAsNbs0/j7GkjePrk7+5m8yOEUukzIEaI4mqf0jlt C2Ozs5f1wVDEgwzGGlPXIJyM243Nk0cAzFUqMWZPm9/UkzFFWnWCq8ZGDRkWAMrcpKqX PdqWc5sfBlDWdTnJWQaDS/fW8mG8SL4WLEIwJqrh5OT5mhZVmGcBV4iCTlh0Gmz7Upk1 Rb4w== X-Gm-Message-State: AC+VfDypJm+5jsBJkE78sbJuYz4pO2CKGOQzv02gr1JJuNsWT/x/1DdY 9CP5RfOUnt4kob/4yep1lK8M5KCO4K2FhPxILik7v7gcGEcQ8TSDXsKcmR1u1uGkW3997wpUWI1 gO4S/2lCQEfw= X-Received: by 2002:a17:90b:314e:b0:252:75ed:eff5 with SMTP id ip14-20020a17090b314e00b0025275edeff5mr1245110pjb.30.1683736457237; Wed, 10 May 2023 09:34:17 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7EdgNF0FnAHwSa6p1ZBdA+qjfDeebFN0AfPJYEoCiiN4duL77pDs94kbQ+vfFR/hWf3NeGtg== X-Received: by 2002:a17:90b:314e:b0:252:75ed:eff5 with SMTP id ip14-20020a17090b314e00b0025275edeff5mr1245083pjb.30.1683736456926; Wed, 10 May 2023 09:34:16 -0700 (PDT) Received: from ?IPV6:2001:4958:15a0:30:5835:5bd3:f0c8:e5ef? ([2001:4958:15a0:30:5835:5bd3:f0c8:e5ef]) by smtp.gmail.com with ESMTPSA id gp24-20020a17090adf1800b0024e227828a9sm8880080pjb.24.2023.05.10.09.34.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 10 May 2023 09:34:16 -0700 (PDT) Message-ID: <48a47f2e-0506-ca0f-07d5-15918865cd19@redhat.com> Date: Wed, 10 May 2023 18:34:15 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH 2/4] usb: usbfs: Use consistent mmap functions To: Ruihan Li , Alan Stern Cc: linux-mm@kvack.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Pasha Tatashin , Matthew Wilcox , Andrew Morton , Christoph Hellwig , Greg Kroah-Hartman , stable@vger.kernel.org References: <20230510085527.57953-1-lrh2000@pku.edu.cn> <20230510085527.57953-3-lrh2000@pku.edu.cn> From: David Hildenbrand Organization: Red Hat In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 5111B14000B X-Rspam-User: X-Rspamd-Server: rspam06 X-Stat-Signature: atdk4o3o5pkuadab187ug5deoa6yg19e X-HE-Tag: 1683736462-590457 X-HE-Meta: U2FsdGVkX1/snjfuLekE0OricwjiZh7LredAybtHNYS7iT93i+d5IyPsO4r/2KA7DxrSdo6tBIkBfmV6ta/fjCYdkodYrkMJEaZtQK1PktyWURsUaeLe4E33A0njTfDVx8xhkhCW0yH717AVOso27TePht5eyTuY78JtF8tnvyBn8rhK7f+CB8i8FYk8E398fmLt+AR1KaxJGZq+mxo4FvWLJ3Kjx43LtqpNfdmREYcqRNP+THXEWTVwvHjbMAhS9AjG/QP5r8fIGT/yno1znj3ZQ+7wCJNmpEZQkCQY8Utv5AD0/t67g/DuQ6FVsSpD9fSzmKMol0GZVxF+HPQ+y0Ul84ArI+8IyX2xA5jAC9s+qmgrJkMRxjxQCDtTdsj75wE5e6eU3TLK6twDVpXhGH2Bxh/gl7lEBKGGPtQfpZk4SLOGcMp15qgkqp2GvE2ffI8u3IydJO55IHxuYUlnlVim8fz6cgLXc3oMcVPrDtSZQbToc65vmRPSPw+Wy4OwMtzpBKAWFLDNftnCYXTGNQIO1sMJbEunfZ4Bz+nkjsyl8dkStSf1adeo5Mdli0kIQi2xUKg4uVfKsDBvs2pyRoDT97yJ1QAU6wgt6XrJHUWEr27KNdQFLExwFSM0JAfAR4W8hDfcOO8CgNnirsJNb8H1F+sNfSimKxlU77Alzb99bwZSAh++sNFQe9X7VcqsLWxOaLtQmVf6GgttgKckQK6RkhlYePyQijA2Qz7l1rimCJfr7rbSmx5lKYBNEMBT5eIQkt14DbuVcZKRz/DBynfsb1IYjEmnMgSnDgx80ico9yrpgIDyF5Osb8sVWkTAT/slPIC4xhqgh34578n9MgBaUCKJAowJ9EQbO0lqRW+2MGR/kMU4Ih4ezTyXmTxOx5tTHKyRXK5QMFJvygWPOdxocs+ZLKZpfaTP0A7H0gQOcmh2dgggwq0GLZf9Z6SODV49Wdn58F1xd/5a8KU QPB29kg+ etxYkOMT1vMMT2VWzDiGWYEc8Z4w+fZAt6PlZ4celwrV2fD6thQt7t9FPHUXbbRwBeBO2cT9Rsh5Jj+Ryw6bXIgrYT7liJ5rDK7D2Q8i/P5Z5gb5uXS85sTpXb3gV+KgDwSlmJIcCKJgLEVeYJEnb4jXSo3nih+blvejxwmPoGx14JmCBgqLXNdWtlHqgoREA+0jDa9ZDuy7NjzfdoKqTOnz/RkGJHVFAbiXqpaj+T/o+9XQyN9cIEyVosfQKm/wTYHEpSgYCnvZFaOi8V1OjUBohWV3m/qrIz+KFLIpI+UkXse9a3lLVJufbe34z20rQIZDNOjck0Qj+e9ehHTb5CxMIU/QVraqPXbOj9wI3cQbb/jC0OJFB9MUNtuhPPbAWu3BWfsKEXw+HbtWTNbZCWKqQOVnLZFiIy3HiRngLYREDlB58XXq9L52pFo7t2k1NBANfKJOq8QdZXS7OseoX2TAr4w== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 10.05.23 17:41, Ruihan Li wrote: > Hi Alan, > > On Wed, May 10, 2023 at 10:38:48AM -0400, Alan Stern wrote: >> On Wed, May 10, 2023 at 04:55:25PM +0800, Ruihan Li wrote: >>> When hcd->localmem_pool is non-null, it is used to allocate DMA memory. >>> In this case, the dma address will be properly returned (in dma_handle), >>> and dma_mmap_coherent should be used to map this memory into the user >>> space. However, the current implementation uses pfn_remap_range, which >>> is supposed to map normal pages (instead of DMA pages). >>> >>> Instead of repeating the logic in the memory allocation function, this >>> patch introduces a more robust solution. To address the previous issue, >>> this patch checks the type of allocated memory by testing whether >>> dma_handle is properly set. If dma_handle is properly returned, it means >>> some DMA pages are allocated and dma_mmap_coherent should be used to map >>> them. Otherwise, normal pages are allocated and pfn_remap_range should >>> be called. This ensures that the correct mmap functions are used >>> consistently, independently with logic details that determine which type >>> of memory gets allocated. >>> >>> Fixes: a0e710a7def4 ("USB: usbfs: fix mmap dma mismatch") >>> Cc: stable@vger.kernel.org >>> Signed-off-by: Ruihan Li >>> --- >>> drivers/usb/core/devio.c | 10 ++++++++-- >>> 1 file changed, 8 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c >>> index b4cf9e860..5067030b7 100644 >>> --- a/drivers/usb/core/devio.c >>> +++ b/drivers/usb/core/devio.c >>> @@ -235,7 +235,7 @@ static int usbdev_mmap(struct file *file, struct vm_area_struct *vma) >>> size_t size = vma->vm_end - vma->vm_start; >>> void *mem; >>> unsigned long flags; >>> - dma_addr_t dma_handle; >>> + dma_addr_t dma_handle = DMA_MAPPING_ERROR; >>> int ret; >>> >>> ret = usbfs_increase_memory_usage(size + sizeof(struct usb_memory)); >>> @@ -265,7 +265,13 @@ static int usbdev_mmap(struct file *file, struct vm_area_struct *vma) >>> usbm->vma_use_count = 1; >>> INIT_LIST_HEAD(&usbm->memlist); >>> >>> - if (hcd->localmem_pool || !hcd_uses_dma(hcd)) { >>> + /* In DMA-unavailable cases, hcd_buffer_alloc_pages allocates >>> + * normal pages and assigns DMA_MAPPING_ERROR to dma_handle. Check >>> + * whether we are in such cases, and then use remap_pfn_range (or >>> + * dma_mmap_coherent) to map normal (or DMA) pages into the user >>> + * space, respectively. >>> + */ >> >> Another stylistic issue. For multi-line comments, the format we use is: >> >> /* >> * Blah, blah, blah >> * Blah, blah, blah >> */ >> >> Alan Stern > > Yeah, I am pretty sure it is another style difference with the net > subsystem. Again, in the next version, I'll follow the coding style that > you have pointed out. Documentation/process/coding-style.rst spells out that net/ and drivers/net/ are "special". Regarding breaking long lines, it's just an inconsistent, undocumented mess IIRC ... -- Thanks, David / dhildenb