From patchwork Fri Apr 15 20:28:59 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Franklin S Cooper Jr X-Patchwork-Id: 611232 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2001:1868:205::9]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3qmq1x1rW8z9t60 for ; Sat, 16 Apr 2016 06:31:17 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1arANB-0004gG-8f; Fri, 15 Apr 2016 20:29:49 +0000 Received: from mail-ob0-f193.google.com ([209.85.214.193]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1arAN7-0004b0-4i for linux-mtd@lists.infradead.org; Fri, 15 Apr 2016 20:29:45 +0000 Received: by mail-ob0-f193.google.com with SMTP id ds1so710222obc.3 for ; Fri, 15 Apr 2016 13:29:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=hCaVjrKrS7UXyhGvtHtZcPGsqhUOJvh+4u6MEl4DWus=; b=VeyX5MHPUFiv4kiUWDJ+y6bN1T4xsSgigv55FAqXUqfv2lKz8hIu93fUvN8SLLg0HO 6zn6hhibHMQDoaDkBvl6mjLFTnPbav+JZeD9MFYUXSxMw3MPYUYlqMU37FiZbRNtPKSi kcXUE72dBuMdHSPOcTfaHRNC4w7cN5ORf2NIPlJbG+OMyZfqphIGpWzYhiVenUD+jmKr xjIzoNBN6nUR0e6bmOLTyyldfIAcFhD4w0IpdqoKdBWFrLqWVc/Gi1NgvYdwdLO9Y8kp KEsLA1v5PB5RKf4R8ZnKdc5yQC1SbNHxuXqfzk3qi60SfbIvXo5lv24TX4ii/WWIkpIm qLiw== X-Gm-Message-State: AOPr4FVqcfswyIJUyhgC81nYON1BD3fUdanYvwKdkzNmVwc02z5PARhxR7HDdtS7df7P0A== X-Received: by 10.182.48.37 with SMTP id i5mr1509877obn.55.1460752163099; Fri, 15 Apr 2016 13:29:23 -0700 (PDT) Received: from beast-server.fios-router.home ([173.64.219.161]) by smtp.gmail.com with ESMTPSA id 71sm15279202otj.24.2016.04.15.13.29.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 15 Apr 2016 13:29:22 -0700 (PDT) From: Franklin S Cooper Jr To: boris.brezillon@free-electrons.com, dwmw2@infradead.org, computersforpeace@gmail.com, tony@atomide.com, rogerq@ti.com, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org Subject: [PATCH 2/2] mtd: nand: omap2: Fix high memory dma prefetch transfer Date: Fri, 15 Apr 2016 15:28:59 -0500 Message-Id: <1460752139-12742-3-git-send-email-fcooper@ti.com> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1460752139-12742-1-git-send-email-fcooper@ti.com> References: <1460752139-12742-1-git-send-email-fcooper@ti.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160415_132945_235136_8B806CCB X-CRM114-Status: UNSURE ( 9.77 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -2.4 (--) X-Spam-Report: SpamAssassin version 3.4.0 on bombadil.infradead.org summary: Content analysis details: (-2.4 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [209.85.214.193 listed in list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (fcooperwork[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 0.0 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different -0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [209.85.214.193 listed in wl.mailspike.net] -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders 0.2 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom freemail headers are different X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Cooper Jr., Franklin" MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: "Cooper Jr., Franklin" Based on DMA documentation and testing using high memory buffer when doing dma transfers can lead to various issues including kernel panics. To workaround this simply use cpu copy. Signed-off-by: Franklin S Cooper Jr --- drivers/mtd/nand/omap2.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c index 762e0ed..8d0ae3a 100644 --- a/drivers/mtd/nand/omap2.c +++ b/drivers/mtd/nand/omap2.c @@ -467,17 +467,8 @@ static inline int omap_nand_dma_transfer(struct mtd_info *mtd, void *addr, int ret; u32 val; - if (addr >= high_memory) { - struct page *p1; - - if (((size_t)addr & PAGE_MASK) != - ((size_t)(addr + len - 1) & PAGE_MASK)) - goto out_copy; - p1 = vmalloc_to_page(addr); - if (!p1) - goto out_copy; - addr = page_address(p1) + ((size_t)addr & ~PAGE_MASK); - } + if (!virt_addr_valid(addr)) + goto out_copy; sg_init_one(&sg, addr, len); n = dma_map_sg(info->dma->device->dev, &sg, 1, dir);