From patchwork Tue Apr 6 20:43:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jianxiong Gao X-Patchwork-Id: 416388 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-26.3 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 00038C43460 for ; Tue, 6 Apr 2021 20:44:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CADAA613D4 for ; Tue, 6 Apr 2021 20:44:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245597AbhDFUo1 (ORCPT ); Tue, 6 Apr 2021 16:44:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41048 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245587AbhDFUo0 (ORCPT ); Tue, 6 Apr 2021 16:44:26 -0400 Received: from mail-pl1-x64a.google.com (mail-pl1-x64a.google.com [IPv6:2607:f8b0:4864:20::64a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D3538C061756 for ; Tue, 6 Apr 2021 13:44:18 -0700 (PDT) Received: by mail-pl1-x64a.google.com with SMTP id k9so8283233pls.13 for ; Tue, 06 Apr 2021 13:44:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=ph8QNVbJQpFHoFHcw/UjJ2x7qwIiEdCHHUYp/82KbYo=; b=Qq1M2ouVCDNR0r1/1tbZIrUOimL/Mp5BppXybNmXHhUWtbrIXo4DFa6qrhpVw6keuS tt8b4vTLglmih0vMPwQF66NkBiRGg+3Xv6w04P25eVcOzfqwnFLGjp9W0kCJGjdHNi8X 2nTGHJWQbjiQsv46b0ab0Y1MQXi4KLFM8RZSBAhoiWpV+x6/0kyilSdzvLHnNLawuKkM WXMmiZfbObbNPetgudaj5x/ori2ohfIN0dr/2an8x1PdoJWkORkGNuhIN/VyB806xCoz ZZweOpHYMsqubZTTfYQUq1sFvSmxEECaLSaavoJzkY+OzD4vOI/Yv1t3vd52xW0CPlW+ z5pA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=ph8QNVbJQpFHoFHcw/UjJ2x7qwIiEdCHHUYp/82KbYo=; b=rllyrq660iBP/evy7tidIL0RHsC04YMFfXykuotr3kfGknSAngfWeXKx6VMdYPkIHG E22eW85wP//Hr3e+wiGRaas0FJyIfqohVlgjhcJyZqrI6iUZ4vHgCRhovVPhyu/eI36A 5U/9NkQC1PUXwTzrBUQAeDBAMlypPJpsL5FUzDMIbLl3iycXroKjsaIfDt85gNGDCBw8 ioGASGgxBcl7QvI0YSqsLP2CiM6W/iKG8K90+8aSorZgptLGFggKBTfYqi7ImqIFB1BZ rEG7c6ZkY5kf27wKeE7O2A//asW1jt8wfOQ9h7ciny/VTfx570RYwOsLGQ6SCOGLMF31 GfDQ== X-Gm-Message-State: AOAM531oH2QrOWAQVLqj2aomatoqo2l3zjzYa5dUDHG4C/eC3S+MT//P m/n3OvzdtCYmYj/De53S5yFhs1UQ0gsoHj7rgwlJMVBRMGMxsRusRqVgkPJYskZOzfYWiijstuf t8zpeqQ67ePVra3ZmIyv5i7rT9PE0lFGIX+nKb7dFdWAX8+JLUeaOtviHCmg= X-Google-Smtp-Source: ABdhPJzssHx9HQQZPRTDIRWWFq0TEzstH0V23AFCgVqOkTrlvlXWvRJOH69gfysAwLc3tsWbcXxITwT10g== X-Received: from jxgao-snp.c.googlers.com ([fda3:e722:ac3:10:7f:e700:c0a8:1373]) (user=jxgao job=sendgmr) by 2002:a17:902:f687:b029:e8:da63:6195 with SMTP id l7-20020a170902f687b02900e8da636195mr62732plg.75.1617741858271; Tue, 06 Apr 2021 13:44:18 -0700 (PDT) Date: Tue, 6 Apr 2021 20:43:22 +0000 In-Reply-To: <20210406204326.1932888-1-jxgao@google.com> Message-Id: <20210406204326.1932888-4-jxgao@google.com> Mime-Version: 1.0 References: <20210406204326.1932888-1-jxgao@google.com> X-Mailer: git-send-email 2.31.0.208.g409f899ff0-goog Subject: [PATCH V2 v5.4 3/8] swiotlb: factor out a nr_slots helper From: Jianxiong Gao To: stable@vger.kernel.org Cc: Jianxiong Gao , Christoph Hellwig , Konrad Rzeszutek Wilk Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Christoph Hellwig 'commit c32a77fd1878 ("swiotlb: factor out a nr_slots helper")' Factor out a helper to find the number of slots for a given size. Signed-off-by: Christoph Hellwig Acked-by: Jianxiong Gao Tested-by: Jianxiong Gao Signed-off-by: Konrad Rzeszutek Wilk Signed-off-by: Jianxiong Gao --- include/linux/swiotlb.h | 1 + kernel/dma/swiotlb.c | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h index cde3dc18e21a..ea8e2e28459d 100644 --- a/include/linux/swiotlb.h +++ b/include/linux/swiotlb.h @@ -28,6 +28,7 @@ enum swiotlb_force { * controllable. */ #define IO_TLB_SHIFT 11 +#define IO_TLB_SIZE (1 << IO_TLB_SHIFT) extern void swiotlb_init(int verbose); int swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose); diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c index 9fa71a91c235..70023393dd6b 100644 --- a/kernel/dma/swiotlb.c +++ b/kernel/dma/swiotlb.c @@ -179,6 +179,11 @@ static inline unsigned long io_tlb_offset(unsigned long val) return val & (IO_TLB_SEGSIZE - 1); } +static inline unsigned long nr_slots(u64 val) +{ + return DIV_ROUND_UP(val, IO_TLB_SIZE); +} + /* * Early SWIOTLB allocation may be too early to allow an architecture to * perform the desired operations. This function allows the architecture to @@ -477,20 +482,20 @@ phys_addr_t swiotlb_tbl_map_single(struct device *hwdev, tbl_dma_addr &= mask; - offset_slots = ALIGN(tbl_dma_addr, 1 << IO_TLB_SHIFT) >> IO_TLB_SHIFT; + offset_slots = nr_slots(tbl_dma_addr); /* * Carefully handle integer overflow which can occur when mask == ~0UL. */ max_slots = mask + 1 - ? ALIGN(mask + 1, 1 << IO_TLB_SHIFT) >> IO_TLB_SHIFT + ? nr_slots(mask + 1) : 1UL << (BITS_PER_LONG - IO_TLB_SHIFT); /* * For mappings greater than or equal to a page, we limit the stride * (and hence alignment) to a page size. */ - nslots = ALIGN(alloc_size, 1 << IO_TLB_SHIFT) >> IO_TLB_SHIFT; + nslots = nr_slots(alloc_size); if (alloc_size >= PAGE_SIZE) stride = (1 << (PAGE_SHIFT - IO_TLB_SHIFT)); else @@ -586,7 +591,7 @@ void swiotlb_tbl_unmap_single(struct device *hwdev, phys_addr_t tlb_addr, enum dma_data_direction dir, unsigned long attrs) { unsigned long flags; - int i, count, nslots = ALIGN(alloc_size, 1 << IO_TLB_SHIFT) >> IO_TLB_SHIFT; + int i, count, nslots = nr_slots(alloc_size); int index = (tlb_addr - io_tlb_start) >> IO_TLB_SHIFT; phys_addr_t orig_addr = io_tlb_orig_addr[index]; From patchwork Tue Apr 6 20:43:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jianxiong Gao X-Patchwork-Id: 416387 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-26.3 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 179AFC433ED for ; Tue, 6 Apr 2021 20:44:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E53C2613CD for ; Tue, 6 Apr 2021 20:44:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245610AbhDFUoa (ORCPT ); Tue, 6 Apr 2021 16:44:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41058 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232859AbhDFUoa (ORCPT ); Tue, 6 Apr 2021 16:44:30 -0400 Received: from mail-pf1-x449.google.com (mail-pf1-x449.google.com [IPv6:2607:f8b0:4864:20::449]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 85AE5C06174A for ; Tue, 6 Apr 2021 13:44:20 -0700 (PDT) Received: by mail-pf1-x449.google.com with SMTP id 7so11413160pfn.4 for ; Tue, 06 Apr 2021 13:44:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=IyEiC9I8hW/pLSP82lpiKKcDMjbhuVg6sO7+Ng3Y1aE=; b=NWvRru4nk/sntVa/PCd2Lb2oET58YbtWDqO2F2iJ+RXfcQ6k+X+aT0FZbJW6kHT10E tq5cWtmJ6Nu64EMvZA/dQ/7xwUSyQvT3tBQoYjMoXXRKuQGXTQr9i09RKcxLbIz6iLg3 UvUrt/uCvgnYfB+4W8PxvIiJXeDnHajzfvqaTuxEIWadhw39rFyf3Zy3k+F7Ncii4wnF TklorHXKNa9mtgAOFmRbZBVkz7lA06nE+G7yXVwg8vE9VCwBDymNpo7QoiKmqEa0K5HE +XnurYCDnC3xPFXLUZ+kE9wbdibDGPTSxH4U5Qgcw1ZB3KWdqWA/wQ0UTCMe6Mq+qJAM KW3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=IyEiC9I8hW/pLSP82lpiKKcDMjbhuVg6sO7+Ng3Y1aE=; b=OCgtzj8A2TFwDCAyFY4ZMfmAU69mAyU76uUcO0T2PFfoSwJ5yQMJkDB3b1LBOwnkxG E53gwytUz6+jGpjo3vyetboQqL6GLeCNwipCi/66OvsIijzST5QbOV/7kwWMgM/4sd84 pSzH5GYlzx0AqYIJHhn3ncaW021bRYLNIUN1V9H9UYCpcP9lljLKLwpHZkwzmSMdicZS m/p5iJ17tyIzlHk+I06afqOPHoPcsZ/v60e8pQn/xACWqAqTAubc8Sp5jtJaeVKoQsSs vj44fiXFaObajG0gE4CNZw2DUyoIFLUSTtYWqGZUbmfQQtpNodsQKEICfAWDr9XumGQF 56pw== X-Gm-Message-State: AOAM530yx4ibNH7Su+5aC1Z2AlxvI1SsVioSQcU2UrRD9MYGaNkugBge 3ELhFccNPgOX2kteBpc4uDNAyN87jnUYh5Z58r+FV8VUIAQDZtT+J49okfK83r70tE+Y2sss1FL UI9Ks9wnyyepGanqV35QBk/CZZB9pw7ls4Tc+/yIKnuZg6icoQdd4JWnI7fs= X-Google-Smtp-Source: ABdhPJzMq7gw8BMukWehMEOeY9/VWahs2D9rd+klH+B0SsTSCedaTbkpp9v35JSGmT6x92MHFqcdzG432w== X-Received: from jxgao-snp.c.googlers.com ([fda3:e722:ac3:10:7f:e700:c0a8:1373]) (user=jxgao job=sendgmr) by 2002:a62:5ac4:0:b029:22e:e8de:eaba with SMTP id o187-20020a625ac40000b029022ee8deeabamr29498639pfb.4.1617741859901; Tue, 06 Apr 2021 13:44:19 -0700 (PDT) Date: Tue, 6 Apr 2021 20:43:23 +0000 In-Reply-To: <20210406204326.1932888-1-jxgao@google.com> Message-Id: <20210406204326.1932888-5-jxgao@google.com> Mime-Version: 1.0 References: <20210406204326.1932888-1-jxgao@google.com> X-Mailer: git-send-email 2.31.0.208.g409f899ff0-goog Subject: [PATCH V2 v5.4 4/8] swiotlb: clean up swiotlb_tbl_unmap_single From: Jianxiong Gao To: stable@vger.kernel.org Cc: Jianxiong Gao , Christoph Hellwig , Konrad Rzeszutek Wilk Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Christoph Hellwig 'commit ca10d0f8e530 ("swiotlb: clean up swiotlb_tbl_unmap_single")' Remove a layer of pointless indentation, replace a hard to follow ternary expression with a plain if/else. Signed-off-by: Christoph Hellwig Acked-by: Jianxiong Gao Tested-by: Jianxiong Gao Signed-off-by: Konrad Rzeszutek Wilk Signed-off-by: Jianxiong Gao --- kernel/dma/swiotlb.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c index 70023393dd6b..10c20010710c 100644 --- a/kernel/dma/swiotlb.c +++ b/kernel/dma/swiotlb.c @@ -610,28 +610,28 @@ void swiotlb_tbl_unmap_single(struct device *hwdev, phys_addr_t tlb_addr, * with slots below and above the pool being returned. */ spin_lock_irqsave(&io_tlb_lock, flags); - { - count = ((index + nslots) < ALIGN(index + 1, IO_TLB_SEGSIZE) ? - io_tlb_list[index + nslots] : 0); - /* - * Step 1: return the slots to the free list, merging the - * slots with superceeding slots - */ - for (i = index + nslots - 1; i >= index; i--) { - io_tlb_list[i] = ++count; - io_tlb_orig_addr[i] = INVALID_PHYS_ADDR; - } - /* - * Step 2: merge the returned slots with the preceding slots, - * if available (non zero) - */ - for (i = index - 1; - io_tlb_offset(i) != IO_TLB_SEGSIZE - 1 && - io_tlb_list[i]; i--) - io_tlb_list[i] = ++count; - - io_tlb_used -= nslots; + if (index + nslots < ALIGN(index + 1, IO_TLB_SEGSIZE)) + count = io_tlb_list[index + nslots]; + else + count = 0; + /* + * Step 1: return the slots to the free list, merging the slots with + * superceeding slots + */ + for (i = index + nslots - 1; i >= index; i--) { + io_tlb_list[i] = ++count; + io_tlb_orig_addr[i] = INVALID_PHYS_ADDR; } + + /* + * Step 2: merge the returned slots with the preceding slots, if + * available (non zero) + */ + for (i = index - 1; + io_tlb_offset(i) != IO_TLB_SEGSIZE - 1 && io_tlb_list[i]; + i--) + io_tlb_list[i] = ++count; + io_tlb_used -= nslots; spin_unlock_irqrestore(&io_tlb_lock, flags); } From patchwork Tue Apr 6 20:43:25 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jianxiong Gao X-Patchwork-Id: 416386 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-26.3 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74E2EC43460 for ; Tue, 6 Apr 2021 20:44:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 502AA613CD for ; Tue, 6 Apr 2021 20:44:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347216AbhDFUob (ORCPT ); Tue, 6 Apr 2021 16:44:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41074 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347193AbhDFUob (ORCPT ); Tue, 6 Apr 2021 16:44:31 -0400 Received: from mail-pl1-x64a.google.com (mail-pl1-x64a.google.com [IPv6:2607:f8b0:4864:20::64a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 96478C06174A for ; Tue, 6 Apr 2021 13:44:23 -0700 (PDT) Received: by mail-pl1-x64a.google.com with SMTP id u7so3403395plf.18 for ; Tue, 06 Apr 2021 13:44:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=qG8YVz2W+v2ZVyYyewM7RpQOeINM3BQCkVYCGOPl7Sk=; b=pStLCgS2WzZPN8vWwwK1qMk+tPG+TnMhu+xsrKC0E6MNYHyWAgVMuz7hRi5lT5wzYy GxtOWnXyLD5O7HbHTIv7BbCMK2pXXt/wgrW3GV4ubeP7kWO1uXVsLyiXrAp4cwlcRiLG ygsEJ6H2ctdSPwMS1Sjq4JpOai2TnEp9ORqaKwKOvj3Ca/8YD+r1e9N3zM56ybfMpfjz JgyqqgBOcif01P6EP2DagxNHPZvQd9K5Y7G+XD1gT7SJ4SVwa3Zcb2cJ2E/Ty0A/QV1c lMVLpdjmAhdCZUuCkCgwyq71qBiPEQvxO3HtiAIOE3dOqTipoRpUeyY07Xyr0Oy5laSn 1vcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=qG8YVz2W+v2ZVyYyewM7RpQOeINM3BQCkVYCGOPl7Sk=; b=hNOd4Arj2YQPPrmKv0SLXMuxGj7jeTsDVxn70ymELtEzy7h+VGnpvRUzpup6JDm+/x +U8fBodqF4z9c1Gbn56CKRK/jTg75LyHxbk3SdVMUaCh8scgYPr3MGX0eiakvfGTTkhO cU8OeZYCaiJz2CKaR+e0R5pfl1is8kGuaAiLW0890CaZZFuZndbaYex1whbLUyDBwj6f zUM5GRVnF7y/WfdNBswkR8KrPcIuCK+Bk6fCO41QuRGBwk0hFqDln/nsVNSPGRhDfGAE J/8RB60UQXiQp895ziAMTEdJipdgTXqHprCPsmeSyD8oxGYeq6jA+S5sIeAT75/i4Kdc KzrQ== X-Gm-Message-State: AOAM531IuW8tIVPx41wRbrGxNDW2ZDI/6MZEjUMp8U4KlFCvcPT6iRtO hpSIA/CNa7sN/iHK7Z0HhC+H7bxp8D5UXk/gVx0vXFbJ+DFdn6h4xNuuw3x45t58ggDB8C79OpA NVC55nU734bOONq3yYnCS22mX/IKGuFy3Lj7yaagmnq1OCCOM44GZUFl6SlY= X-Google-Smtp-Source: ABdhPJyL18MF0NjdQTkFrNEcJHpsdvChUJAwGT4jGXzKVuGQV433tESI8a/MYMtxeEfY13F5cu2Zf98PJw== X-Received: from jxgao-snp.c.googlers.com ([fda3:e722:ac3:10:7f:e700:c0a8:1373]) (user=jxgao job=sendgmr) by 2002:a62:800c:0:b029:203:6990:78e2 with SMTP id j12-20020a62800c0000b0290203699078e2mr29334086pfd.3.1617741863064; Tue, 06 Apr 2021 13:44:23 -0700 (PDT) Date: Tue, 6 Apr 2021 20:43:25 +0000 In-Reply-To: <20210406204326.1932888-1-jxgao@google.com> Message-Id: <20210406204326.1932888-7-jxgao@google.com> Mime-Version: 1.0 References: <20210406204326.1932888-1-jxgao@google.com> X-Mailer: git-send-email 2.31.0.208.g409f899ff0-goog Subject: [PATCH V2 v5.4 6/8] swiotlb: don't modify orig_addr in swiotlb_tbl_sync_single From: Jianxiong Gao To: stable@vger.kernel.org Cc: Jianxiong Gao , Christoph Hellwig , Konrad Rzeszutek Wilk Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Christoph Hellwig 'commit 16fc3cef33a0 ("swiotlb: don't modify orig_addr in swiotlb_tbl_sync_single")' swiotlb_tbl_map_single currently nevers sets a tlb_addr that is not aligned to the tlb bucket size. But we're going to add such a case soon, for which this adjustment would be bogus. Signed-off-by: Christoph Hellwig Signed-off-by: Jianxiong Gao Tested-by: Jianxiong Gao Signed-off-by: Konrad Rzeszutek Wilk --- kernel/dma/swiotlb.c | 1 - 1 file changed, 1 deletion(-) diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c index 46286c0d38e2..388c5e2a684e 100644 --- a/kernel/dma/swiotlb.c +++ b/kernel/dma/swiotlb.c @@ -639,7 +639,6 @@ void swiotlb_tbl_sync_single(struct device *hwdev, phys_addr_t tlb_addr, if (orig_addr == INVALID_PHYS_ADDR) return; - orig_addr += (unsigned long)tlb_addr & ((1 << IO_TLB_SHIFT) - 1); switch (target) { case SYNC_FOR_CPU: From patchwork Tue Apr 6 20:43:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jianxiong Gao X-Patchwork-Id: 416385 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-26.3 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 54A0AC433ED for ; Tue, 6 Apr 2021 20:44:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 34362613D3 for ; Tue, 6 Apr 2021 20:44:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237959AbhDFUof (ORCPT ); Tue, 6 Apr 2021 16:44:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41086 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245587AbhDFUof (ORCPT ); Tue, 6 Apr 2021 16:44:35 -0400 Received: from mail-qk1-x749.google.com (mail-qk1-x749.google.com [IPv6:2607:f8b0:4864:20::749]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E75E8C061756 for ; Tue, 6 Apr 2021 13:44:26 -0700 (PDT) Received: by mail-qk1-x749.google.com with SMTP id x11so13350115qki.22 for ; Tue, 06 Apr 2021 13:44:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=rePpgg0NtSFQvI03Pc8QaLoe8pSD5aFacV3/oLpjZHQ=; b=FX3QcbUXsZ59fiysV19KfwNB413SDl/OlsR+WLyXtn9ZBiHJPKMd2bENepGaL4VSKb jutDqNThkQVO6KaxOF8ybJymqywdem5D2Cz9e6rrNrHaUvoWfpvYK+8T0sgVYVHk4W2s 99n5ikrVe3rB3KDJeJPsvbVkj+opdgteG2liTJhJDwyQaiOlM7rzoAW9Mm1+q9Q+mwEJ BDhHXCqC4NT6vT9V+qOES9V5ti5Vn3k5CogfAw0DbIiNc73UvTP2IKZ1o3gST/siXb5C RIepwGyHeczFiFWECoCETLUUd2ei33/nFPwBBNXnY4FEKsy416Bo6jdzma22sNxYIdQy 33vQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=rePpgg0NtSFQvI03Pc8QaLoe8pSD5aFacV3/oLpjZHQ=; b=dS7ElxqN6Peerrn1OdvBAA/hN02tIjM876K9aJ7g2SH+Cxxi/5leljHahWyiPKfC9u loj1BHAHc8knbn4DdWeeaC7/g138tiOH7UGWDT2VmTIyleTK/xhcVzbzmF+VSzfeLAIf llgHuZdRf/BqUIbUgDOmsH755rl+AeVih2aKf7hNDh2v5Pg9WAs7hn7S4DqYHzNKDVhq nd677PP5d1JkalrYABN6hgOP/bO9xUli6JnwcY9WgHx0jF9tEqRh7CKaQLa3+WVTcI3x 4q1amQeT1JbDrxbG3Yaw2d4TWurEtYZcC7haiwWBsWY+/wUgvbgivF3Azyrl0yEaLY5g d/XA== X-Gm-Message-State: AOAM533USzvT+z2mG1dxrGzdb1CPgsfb4vTmwYC8Qn38pU56IC4MTHPh /Ia6xmz4nso0Cbx1FF9XlS+XrrfZwP6uzCXbTnJsbsu06llw2nSyGNoOB7P0pUw4hgngkoZEtzM KyiUv0Up9WyxllG8+wlhFV0sSUOP/DovDGUaJm/d1FJ63UUZcm5b/LLtfihE= X-Google-Smtp-Source: ABdhPJxmNHKj0YsagYpo3qjbBR8hT+Z9H+94vNmOc6KtrwrB13ZpYlcu/Qp6o3GX/MPrUzlm8axQT+6Sfw== X-Received: from jxgao-snp.c.googlers.com ([fda3:e722:ac3:10:7f:e700:c0a8:1373]) (user=jxgao job=sendgmr) by 2002:a0c:ee81:: with SMTP id u1mr20076365qvr.14.1617741866073; Tue, 06 Apr 2021 13:44:26 -0700 (PDT) Date: Tue, 6 Apr 2021 20:43:27 +0000 In-Reply-To: <20210406204326.1932888-1-jxgao@google.com> Message-Id: <20210406204326.1932888-9-jxgao@google.com> Mime-Version: 1.0 References: <20210406204326.1932888-1-jxgao@google.com> X-Mailer: git-send-email 2.31.0.208.g409f899ff0-goog Subject: [PATCH V2 v5.4 8/8] nvme-pci: set min_align_mask From: Jianxiong Gao To: stable@vger.kernel.org Cc: Jianxiong Gao , Christoph Hellwig , Konrad Rzeszutek Wilk Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Christoph Hellwig 'commit 3d2d861eb03e ("nvme-pci: set min_align_mask")' The PRP addressing scheme requires all PRP entries except for the first one to have a zero offset into the NVMe controller pages (which can be different from the Linux PAGE_SIZE). Use the min_align_mask device parameter to ensure that swiotlb does not change the address of the buffer modulo the device page size to ensure that the PRPs won't be malformed. Signed-off-by: Jianxiong Gao Signed-off-by: Christoph Hellwig Tested-by: Jianxiong Gao Signed-off-by: Konrad Rzeszutek Wilk --- drivers/nvme/host/pci.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 869f462e6b6e..087ae2b2a853 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -2576,6 +2576,7 @@ static void nvme_reset_work(struct work_struct *work) * Don't limit the IOMMU merged segment size. */ dma_set_max_seg_size(dev->dev, 0xffffffff); + dma_set_min_align_mask(dev->dev, dev->ctrl.page_size - 1); mutex_unlock(&dev->shutdown_lock);