Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp258453pxb; Wed, 18 Aug 2021 01:25:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwEeqYHmIHNPtXL0rVlUWWWJ3Ffh3oe42JB4pm/rnWzTRhIG8Q3ggjEmPXBLwvAw8yM3nAz X-Received: by 2002:a17:906:9742:: with SMTP id o2mr8749613ejy.532.1629275130299; Wed, 18 Aug 2021 01:25:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629275130; cv=none; d=google.com; s=arc-20160816; b=mON/D6aD+sHTfyDKpBvcLlf+BOzBrOFopDiw5ANcSpaa0VvGEzfJ65lpy7NjcCs3wk N9FaUtrt+NFb+a5LExYNW2BIfkuZrn9jh+rxrPWzazuUNT0cH1C7labnbMiwqLuHNidY vCHVvcQgywff0OZ5AJE6rcR4j6ZOygetz0nMnYSQf74EayZJ9Ze3B+eaN+1wSsUBC/si rPfqmw4+p1nsX89wZ4vGR1y8sgMxrnLlf1VSNtYfzO3zyimDRu80E938iG2OESITBnk7 JpVouT9oFV9vZfvW1YH58OoVDX24TP7JElQUHpxpSqGEmCpsWoZ8DrY35M5c1ZdeSAjk YE1w== 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=N/SjzJs1xyKwscBO40nqnhkNuB3bm/p+ntOETjBdELs=; b=BhAN0VvTvdAJA049iK4kiRmesJtukAvWApDst8RY7mzGlZ6IspXZFWdSCVnrcRSAIg 6JhgxrwNY1p5mvtUvK6UPnyjlYN4+7xBmwgmkCYar5kiqUwd+uuzeQjTnP6yin8dI1pV On2RPCB6waj+6TRAzjnu5PBMqavRWZTf2phtELxXbJPeiAKvIWORqNdsX04vKrwHFNYL I/5Wnp8/awkt5XNPs8gqCR6QqOE2rac7y5AR8FXT9iCANb9PthRmrNeqnaf9fJ4pTH3k mlVj8X102qQcCreMfs+ebwou7nD0YnDKtYTmySrL4GWvOY6v07drss9t22BMkWS6CRZB IHQQ== 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 g5si5038662ejr.361.2021.08.18.01.25.07; Wed, 18 Aug 2021 01:25: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; 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 S238939AbhHRIWV (ORCPT + 99 others); Wed, 18 Aug 2021 04:22:21 -0400 Received: from out4436.biz.mail.alibaba.com ([47.88.44.36]:9062 "EHLO out4436.biz.mail.alibaba.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239585AbhHRIWO (ORCPT ); Wed, 18 Aug 2021 04:22:14 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R121e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04394;MF=xianting.tian@linux.alibaba.com;NM=1;PH=DS;RN=10;SR=0;TI=SMTPD_---0Ujfv4hp_1629274884; Received: from localhost(mailfrom:xianting.tian@linux.alibaba.com fp:SMTPD_---0Ujfv4hp_1629274884) by smtp.aliyun-inc.com(127.0.0.1); Wed, 18 Aug 2021 16:21:25 +0800 From: Xianting Tian To: gregkh@linuxfoundation.org, jirislaby@kernel.org, amit@kernel.org, arnd@arndb.de, osandov@fb.com Cc: shile.zhang@linux.alibaba.com, linuxppc-dev@lists.ozlabs.org, virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Xianting Tian Subject: [PATCH v8 0/3] make hvc pass dma capable memory to its backend Date: Wed, 18 Aug 2021 16:21:19 +0800 Message-Id: <20210818082122.166881-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. V7 Greg KH suggests to add test and code review developer, Jiri Slaby suggests to use lockless buffer and fix dma alignment in separate patch. fix above things in v8. drivers/tty/hvc/hvc_console.c | 27 ++++++++++++--------------- drivers/tty/hvc/hvc_console.h | 16 ++++++++++++++-- drivers/tty/hvc/hvc_console.h | 16 ++++++++++++-- 3 file changed