From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Tong Tiangen <tongtiangen@huawei.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
James Morse <james.morse@arm.com>,
"Robin Murphy" <robin.murphy@arm.com>,
Andrey Konovalov <andreyknvl@gmail.com>,
Dmitry Vyukov <dvyukov@google.com>,
Vincenzo Frascino <vincenzo.frascino@arm.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Nicholas Piggin <npiggin@gmail.com>,
Andrey Ryabinin <ryabinin.a.a@gmail.com>,
Alexander Potapenko <glider@google.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Aneesh Kumar K.V <aneesh.kumar@kernel.org>,
"Naveen N. Rao" <naveen.n.rao@linux.ibm.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
"H. Peter Anvin" <hpa@zytor.com>,
<linux-arm-kernel@lists.infradead.org>, <linux-mm@kvack.org>,
<linuxppc-dev@lists.ozlabs.org>, <linux-kernel@vger.kernel.org>,
<wangkefeng.wang@huawei.com>, Guohanjun <guohanjun@huawei.com>
Subject: Re: [PATCH v12 3/6] mm/hwpoison: return -EFAULT when copy fail in copy_mc_[user]_highpage()
Date: Mon, 19 Aug 2024 12:43:00 +0100 [thread overview]
Message-ID: <20240819124300.0000421e@Huawei.com> (raw)
In-Reply-To: <20240528085915.1955987-4-tongtiangen@huawei.com>
On Tue, 28 May 2024 16:59:12 +0800
Tong Tiangen <tongtiangen@huawei.com> wrote:
> If hardware errors are encountered during page copying, returning the bytes
> not copied is not meaningful, and the caller cannot do any processing on
> the remaining data. Returning -EFAULT is more reasonable, which represents
> a hardware error encountered during the copying.
>
> Signed-off-by: Tong Tiangen <tongtiangen@huawei.com>
LGTM
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> ---
> include/linux/highmem.h | 8 ++++----
> mm/khugepaged.c | 4 ++--
> 2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/include/linux/highmem.h b/include/linux/highmem.h
> index 00341b56d291..64a567d5ad6f 100644
> --- a/include/linux/highmem.h
> +++ b/include/linux/highmem.h
> @@ -335,8 +335,8 @@ static inline void copy_highpage(struct page *to, struct page *from)
> /*
> * If architecture supports machine check exception handling, define the
> * #MC versions of copy_user_highpage and copy_highpage. They copy a memory
> - * page with #MC in source page (@from) handled, and return the number
> - * of bytes not copied if there was a #MC, otherwise 0 for success.
> + * page with #MC in source page (@from) handled, and return -EFAULT if there
> + * was a #MC, otherwise 0 for success.
> */
> static inline int copy_mc_user_highpage(struct page *to, struct page *from,
> unsigned long vaddr, struct vm_area_struct *vma)
> @@ -352,7 +352,7 @@ static inline int copy_mc_user_highpage(struct page *to, struct page *from,
> kunmap_local(vto);
> kunmap_local(vfrom);
>
> - return ret;
> + return ret ? -EFAULT : 0;
> }
>
> static inline int copy_mc_highpage(struct page *to, struct page *from)
> @@ -368,7 +368,7 @@ static inline int copy_mc_highpage(struct page *to, struct page *from)
> kunmap_local(vto);
> kunmap_local(vfrom);
>
> - return ret;
> + return ret ? -EFAULT : 0;
> }
> #else
> static inline int copy_mc_user_highpage(struct page *to, struct page *from,
> diff --git a/mm/khugepaged.c b/mm/khugepaged.c
> index 774a97e6e2da..cce838e85967 100644
> --- a/mm/khugepaged.c
> +++ b/mm/khugepaged.c
> @@ -798,7 +798,7 @@ static int __collapse_huge_page_copy(pte_t *pte, struct folio *folio,
> continue;
> }
> src_page = pte_page(pteval);
> - if (copy_mc_user_highpage(page, src_page, src_addr, vma) > 0) {
> + if (copy_mc_user_highpage(page, src_page, src_addr, vma)) {
> result = SCAN_COPY_MC;
> break;
> }
> @@ -2042,7 +2042,7 @@ static int collapse_file(struct mm_struct *mm, unsigned long addr,
> index++;
> dst++;
> }
> - if (copy_mc_highpage(dst, folio_page(folio, 0)) > 0) {
> + if (copy_mc_highpage(dst, folio_page(folio, 0))) {
> result = SCAN_COPY_MC;
> goto rollback;
> }
next prev parent reply other threads:[~2024-08-19 11:43 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-28 8:59 [PATCH v12 0/6]arm64: add ARCH_HAS_COPY_MC support Tong Tiangen
2024-05-28 8:59 ` Tong Tiangen
2024-05-28 8:59 ` Tong Tiangen
2024-05-28 8:59 ` [PATCH v12 1/6] uaccess: add generic fallback version of copy_mc_to_user() Tong Tiangen
2024-05-28 8:59 ` Tong Tiangen
2024-05-28 8:59 ` Tong Tiangen
2024-07-11 13:53 ` Mauro Carvalho Chehab
2024-07-11 13:53 ` Mauro Carvalho Chehab
2024-07-12 5:52 ` Mauro Carvalho Chehab
2024-07-12 5:52 ` Mauro Carvalho Chehab
2024-08-19 9:57 ` Jonathan Cameron
2024-08-19 13:11 ` Tong Tiangen
2024-05-28 8:59 ` [PATCH v12 2/6] arm64: add support for ARCH_HAS_COPY_MC Tong Tiangen
2024-05-28 8:59 ` Tong Tiangen
2024-05-28 8:59 ` Tong Tiangen
2024-08-19 10:30 ` Jonathan Cameron
2024-08-20 2:43 ` Tong Tiangen
2024-08-19 17:29 ` Mark Rutland
2024-08-20 2:11 ` Tong Tiangen
2024-08-20 9:12 ` Mark Rutland
2024-08-20 13:26 ` Tong Tiangen
2024-05-28 8:59 ` [PATCH v12 3/6] mm/hwpoison: return -EFAULT when copy fail in copy_mc_[user]_highpage() Tong Tiangen
2024-05-28 8:59 ` Tong Tiangen
2024-05-28 8:59 ` Tong Tiangen
2024-08-19 11:43 ` Jonathan Cameron [this message]
2024-05-28 8:59 ` [PATCH v12 4/6] arm64: support copy_mc_[user]_highpage() Tong Tiangen
2024-05-28 8:59 ` Tong Tiangen
2024-05-28 8:59 ` Tong Tiangen
2024-08-19 11:56 ` Jonathan Cameron
2024-08-20 3:02 ` Tong Tiangen
2024-08-21 11:28 ` Jonathan Cameron
2024-08-21 14:20 ` Tong Tiangen
2024-05-28 8:59 ` [PATCH v12 5/6] arm64: introduce copy_mc_to_kernel() implementation Tong Tiangen
2024-05-28 8:59 ` Tong Tiangen
2024-05-28 8:59 ` Tong Tiangen
2024-05-28 8:59 ` [PATCH v12 6/6] arm64: send SIGBUS to user process for SEA exception Tong Tiangen
2024-05-28 8:59 ` Tong Tiangen
2024-05-28 8:59 ` Tong Tiangen
2024-08-19 12:08 ` Jonathan Cameron
2024-08-20 3:45 ` Tong Tiangen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240819124300.0000421e@Huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=akpm@linux-foundation.org \
--cc=andreyknvl@gmail.com \
--cc=aneesh.kumar@kernel.org \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=christophe.leroy@csgroup.eu \
--cc=dave.hansen@linux.intel.com \
--cc=dvyukov@google.com \
--cc=glider@google.com \
--cc=guohanjun@huawei.com \
--cc=hpa@zytor.com \
--cc=james.morse@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=mpe@ellerman.id.au \
--cc=naveen.n.rao@linux.ibm.com \
--cc=npiggin@gmail.com \
--cc=robin.murphy@arm.com \
--cc=ryabinin.a.a@gmail.com \
--cc=tglx@linutronix.de \
--cc=tongtiangen@huawei.com \
--cc=vincenzo.frascino@arm.com \
--cc=wangkefeng.wang@huawei.com \
--cc=will@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.