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 5FB22C61DA4 for ; Sun, 5 Mar 2023 15:28:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7CEBA6B0072; Sun, 5 Mar 2023 10:28:53 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 77DE56B0073; Sun, 5 Mar 2023 10:28:53 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 66CA16B0074; Sun, 5 Mar 2023 10:28:53 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 540326B0072 for ; Sun, 5 Mar 2023 10:28:53 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 1D54B1C5DC1 for ; Sun, 5 Mar 2023 15:28:53 +0000 (UTC) X-FDA: 80535227346.19.0898294 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf13.hostedemail.com (Postfix) with ESMTP id EE54B20012 for ; Sun, 5 Mar 2023 15:28:49 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=I0enYYq8; spf=none (imf13.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678030130; a=rsa-sha256; cv=none; b=NjgkAZdi8DmoS0/9ZksjRc937P4H1XyyeFG3SBnqzrlZqpLlgdsK/S20JFjTH+awHqPn8y CJiNK3yHaxAFO/KNr2W9HHIqNZwC9nxejo0ZPgUit7xyzmIpL6Bgcf71KCw0faiGgfo0ak 8j2b23BtRCZymwUKd8rikK7qzgBKQgU= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=I0enYYq8; spf=none (imf13.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678030130; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=xNsREuPqCjUzI76ZNq/RWClQATGAeDXUSMCAtkKEC20=; b=Sv8mxyMBStp1INm6fOa8oTxEqCeGQErhl6P6qQX1PBC9CmlhMZnuxx7SOPBl/RcDxXIgNP kkD6Dub6z2qWMNaWRhu1Q7ukpShxD6CmVA8JeATPdTIIbrEac7/rLRWYYbuesKGp4u+e2v E/c3I3pdx94KfOajYbZ1JY+RZjqYQl4= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=xNsREuPqCjUzI76ZNq/RWClQATGAeDXUSMCAtkKEC20=; b=I0enYYq8L52f98/wTKN4rWWw2d /HSNb9zqyTfNFnxO+L92D/JnfNEPMarTdtw/OUd3skeCGm3Vx74LJSjVY21taXAIyLmRqV1hT6Wgt CVEzlX0JtXH7c1Pq5HIMTcA2GrFQ5veat3KJNvFdi+98jQoPImSSSMP0tOI7eWP5nwWyNgcg1Ykh/ BFfga+BBP8Y688TUQEG/OtU7AohVYpv3XPWGftd7XPvMkvi8RLWymeD41v1y10ZY0jrWbSc3NVFmQ PJAEwJp+JMevUILJK4+UUGBwmbLXGmaX4uQJNy8+FCIPlKRUK89MFZVgEndkZ4Wjqs286q1PFp+vp qfiEsIPA==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pYqI2-004ZJe-6p; Sun, 05 Mar 2023 15:28:46 +0000 Date: Sun, 5 Mar 2023 15:28:46 +0000 From: Matthew Wilcox To: Geert Uytterhoeven Cc: linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org Subject: Re: [PATCH v3 13/34] m68k: Implement the new page table range API Message-ID: References: <20230228213738.272178-1-willy@infradead.org> <20230228213738.272178-14-willy@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Queue-Id: EE54B20012 X-Rspamd-Server: rspam01 X-Stat-Signature: 6gwh9m7xksa58gtg7hck3sb871xudehx X-HE-Tag: 1678030129-781076 X-HE-Meta: U2FsdGVkX1/+qkws8go+eqZ5RseqLTZNLpplH9nBJvE1w3Vswqs5koF1ytBO3w/ir1sAVC3LIEy2yIQebgPhi0NRj9VwjJQu/Khm8dQi4mkFVuF70Br3InpwPgZeZBqsHTABdsQhXtE4A7TNdNhesqPf1uV1KQeY/1UTovfABCYQHDF3DAs/8FIsla+uyW/T11qGGcWVccnoD19BlrjHbfPj/TBXlpYW9ZTiMEqbpYPhb6Vbt243h70qYolCNiCYuVDOdczRE5CIhmNHoZrXqfC7eTYLlNIpfECc83A4u9EMSSgQncQObo5FR4EIAzJm548oDAVatmVK1vtu6xpRoxt+ixipPnbDyAkKWzKxOzjfeQFbYOCAu+Brr66qtOigodcG+qVGvxrjYG8YtmSCctahkHwNxCKCvy9Ok2/uy0ywOmh814OIvKo9QS0V6Vo4KC2N1NnBNsMxZRdJr6LNaj/frjTZXnBQ0Ynk7AQjYT/ccKWyDqBy9gRKs4/Fn+Eu0PFI2OVab78LcGX/nzRehT8MX5CTaOmB+Kd1zgZ9+vSU04gbvTu/emDUGPwmmIgK2WQnHZLpaLB6t/tj8ouhxcVCleHpeIiIzCBYdrxR6HgxVuG0d2y+ysqfbI3x6bpDJo2KYELFPZn5xPd+tzLz0bcZiKGBdkzmVnHyZVm0h0Sk12s05jL4zBB8KH3nkgioPFpqNoChgqp4DfjGlB2xnvJk46KPzFbT+ga+Ck7pOUpPwEWJ9jyjODvVAmv+TBJHBOu2GBdwk04ilVzfAtX2f/u5cVciuUQk0yWypWwyuUnv24wyNksX+obDJhSX2gftO+kCTearr0Sdv2a5m2bqcG/s2H78F03VHDy0OHWVVXvcMO9sQvX+dh/bzZV0C5M7+TzKPEbpVaXPredrxdvbgZndTrZmk7I4J4p/EJEldIsX5Im56zM9KkoFBqHFOPkPeH3BBWLUOUSNEHIl7ko 3HmKXAgE xFgQ6s28UmDwyGt5rZlUN0Toie3CJUDupjeK8BK2I238fjbsh4+sE9cjoD91YhOGczckOP4cB77P36mubbfkG2s+0opemgaaSxMDw9raAhOdTt/i8oPEELGvmodZ5Cgnc3SQo89YVzXJmhpyPDbJBlHPbbA== 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 Sun, Mar 05, 2023 at 11:16:13AM +0100, Geert Uytterhoeven wrote: > > + while (nr--) { > > + __asm__ __volatile__("nop\n\t" > > + ".chip 68040\n\t" > > + "cpushp %%bc,(%0)\n\t" > > + ".chip 68k" > > + : : "a" (paddr + nr * PAGE_SIZE)); > > As gcc (9.5.0) keeps on calculating "paddr + nr * PAGE_SIZE" > inside the loop (albeit using a shift instead of a multiplication), > please use "paddr" here, followed by "paddr += PAGE_SIZE;". Thanks. So this? +++ b/arch/m68k/include/asm/cacheflush_mm.h @@ -235,13 +235,14 @@ static inline void __flush_pages_to_ram(void *vaddr, unsigned int nr) } else if (CPU_IS_040_OR_060) { unsigned long paddr = __pa(vaddr); - while (nr--) { + do { __asm__ __volatile__("nop\n\t" ".chip 68040\n\t" "cpushp %%bc,(%0)\n\t" ".chip 68k" - : : "a" (paddr + nr * PAGE_SIZE)); - } + : : "a" (paddr)); + paddr += PAGE_SIZE; + } while (--nr); } else { unsigned long _tmp; __asm__ __volatile__("movec %%cacr,%0\n\t" Also, I noticed that I broke sun3. It puts the PFN in bits 0-n instead of 12-n. New patch coming soon.