Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp1205949pxb; Tue, 17 Aug 2021 06:25:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJww1Bz+xUUk4306DP28m67AQN3t1Wt4lVHi+3spU/BRDmbqAjXewND5tQx2m1ine8QSAv/s X-Received: by 2002:a92:870b:: with SMTP id m11mr2264987ild.132.1629206722120; Tue, 17 Aug 2021 06:25:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629206722; cv=none; d=google.com; s=arc-20160816; b=MdBVSRcrhHHBd1cTX7LM1S5plBciA/mSgT3tOHlUjln2ACtafVJ+BMCV9bMkHYPG54 4OjC3FRy3au2UbdccvOmYGo6vxGUMYrAGy0tSfUpZ/MLOGL0BVzV8TKIgPgIXihTvxTX 2zEFap6VDvoPThpOjt3VDuMILY78Zr3DOZCvPE9y4LoVjViznXL5nEmsn2x9CNPsfQ76 5RK7pnC116ODd3nv1k4bDDCcFhIVbbCfx5G+wGXGpafanXoGwahDVWYSej2r5aXOtIDG DXaHV6wGKvwvKLBekNu7RiCjo+FZYrwiu6eAt4Zq2qV0ECyAn9w6c3l6vgWV5jYvyCpU F+TA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=kwKQ/aKfn6yPchyyM5l8Op3O80uNSGDFM2r/NgBlcsA=; b=zt0nMik5rmqz5AlJ75AbdhG8Lo++nqOlBRa/lsL1pfkJI8+EA0yCvm65Tw/MjjwwpG q40DvjpaUtvOXOOuujyGdj385+G0cM3znpRY0AJX7jDLnSJWu77fyCDW/01ylITqlK49 ufqyQYomLNKtLfDceo8PicG927f7I4ysnoDUcgaJ+zjKTNcW3lz9WEbi2OnjB8X8jc7I 2ktrt6Blo0Fu/W9hCAgGukEU0w0oh9VaU4Bc/nRwq6I9q/y2BfNzXHBVnEz9GA/hnwk7 XxR5+49UsbgiKWjW/EKOuFuT26RBVtp20LMcoPGEgAQTtUOpuitnYd2RQO2Rd0JjMnTB sSMQ== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u8si2726317jad.68.2021.08.17.06.25.10; Tue, 17 Aug 2021 06:25:22 -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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237515AbhHQNXi (ORCPT + 99 others); Tue, 17 Aug 2021 09:23:38 -0400 Received: from out30-44.freemail.mail.aliyun.com ([115.124.30.44]:33039 "EHLO out30-44.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235463AbhHQNXi (ORCPT ); Tue, 17 Aug 2021 09:23:38 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R131e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04426;MF=xianting.tian@linux.alibaba.com;NM=1;PH=DS;RN=9;SR=0;TI=SMTPD_---0UjQ4eMF_1629206582; Received: from localhost(mailfrom:xianting.tian@linux.alibaba.com fp:SMTPD_---0UjQ4eMF_1629206582) by smtp.aliyun-inc.com(127.0.0.1); Tue, 17 Aug 2021 21:23:02 +0800 From: Xianting Tian To: gregkh@linuxfoundation.org, jirislaby@kernel.org, amit@kernel.org, arnd@arndb.de, osandov@fb.com Cc: linuxppc-dev@lists.ozlabs.org, virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Xianting Tian Subject: [PATCH v7 0/2] make hvc pass dma capable memory to its backend Date: Tue, 17 Aug 2021 21:22:58 +0800 Message-Id: <20210817132300.165014-1-xianting.tian@linux.alibaba.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Dear all, This patch series make hvc framework pass DMA capable memory to put_chars() of hvc backend(eg, virtio-console), and revert commit c4baad5029 ("virtio-console: avoid DMA from stackā€) V1 virtio-console: avoid DMA from vmalloc area https://lkml.org/lkml/2021/7/27/494 For v1 patch, Arnd Bergmann suggests to fix the issue in the first place: Make hvc pass DMA capable memory to put_chars() The fix suggestion is included in v2. V2 [PATCH 1/2] tty: hvc: pass DMA capable memory to put_chars() https://lkml.org/lkml/2021/8/1/8 [PATCH 2/2] virtio-console: remove unnecessary kmemdup() https://lkml.org/lkml/2021/8/1/9 For v2 patch, Arnd Bergmann suggests to make new buf part of the hvc_struct structure, and fix the compile issue. The fix suggestion is included in v3. V3 [PATCH v3 1/2] tty: hvc: pass DMA capable memory to put_chars() https://lkml.org/lkml/2021/8/3/1347 [PATCH v3 2/2] virtio-console: remove unnecessary kmemdup() https://lkml.org/lkml/2021/8/3/1348 For v3 patch, Jiri Slaby suggests to make 'char c[N_OUTBUF]' part of hvc_struct, and make 'hp->outbuf' aligned and use struct_size() to calculate the size of hvc_struct. The fix suggestion is included in v4. V4 [PATCH v4 0/2] make hvc pass dma capable memory to its backend https://lkml.org/lkml/2021/8/5/1350 [PATCH v4 1/2] tty: hvc: pass DMA capable memory to put_chars() https://lkml.org/lkml/2021/8/5/1351 [PATCH v4 2/2] virtio-console: remove unnecessary kmemdup() https://lkml.org/lkml/2021/8/5/1352 For v4 patch, Arnd Bergmann suggests to introduce another array(cons_outbuf[]) for the buffer pointers next to the cons_ops[] and vtermnos[] arrays. This fix included in this v5 patch. V5 Arnd Bergmann suggests to use "L1_CACHE_BYTES" as dma alignment, use 'sizeof(long)' as dma alignment is wrong. fix it in v6. V6 It contains coding error, fix it in v7 and it worked normally according to test result. drivers/tty/hvc/hvc_console.c | 39 +++++++++++++++++++++-------------- drivers/tty/hvc/hvc_console.h | 16 ++++++++++++-- drivers/tty/hvc/hvc_console.h | 16 ++++++++++++-- 3 file changed