lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20241121214229.8fe091954f9bf0d26f54ed88@linux-foundation.org>
Date: Thu, 21 Nov 2024 21:42:29 -0800
From: Andrew Morton <akpm@...ux-foundation.org>
To: Matthew Wilcox <willy@...radead.org>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>, linux-mm@...ck.org,
 mm-commits@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [GIT PULL] MM updates for 6.13-rc1

On Tue, 19 Nov 2024 04:35:47 +0000 Matthew Wilcox <willy@...radead.org> wrote:

> On Mon, Nov 18, 2024 at 07:30:01PM -0800, Andrew Morton wrote:
> > Matthew Wilcox (Oracle) (13):
> >       ksm: use a folio in try_to_merge_one_page()
> >       ksm: convert cmp_and_merge_page() to use a folio
> 
> Unfortunately you left the crap patch in from Gaosheng.  Linus, can you
> apply this fixup?
> 
> >From 3d7e7319bbb3ced1dfb9c82bb7e8c7386380799b Mon Sep 17 00:00:00 2001
> From: "Matthew Wilcox (Oracle)" <willy@...radead.org>
> Date: Mon, 18 Nov 2024 23:32:25 -0500
> Subject: [PATCH] mm: Revert IS_ERR_OR_NULL check
> 
> &foo->bar is address arithmetic, not a dereference of foo.
> Huawei engineers seem particularly prone to not knowing this.

It isn't only Huawai people.  David acked Gaosheng's patch and it snuck
past me (again).  People keep on getting tricked by this idiom and I
think we'd be better off with some nicely named wrapper to help
readers understand what's going on.

> --- a/mm/ksm.c
> +++ b/mm/ksm.c
> @@ -2261,8 +2261,7 @@ static void cmp_and_merge_page(struct page *page, struct ksm_rmap_item *rmap_ite
>  
>  	/* Start by searching for the folio in the stable tree */
>  	kfolio = stable_tree_search(page);
> -	if (!IS_ERR_OR_NULL(kfolio) && &kfolio->page == page &&
> -	    rmap_item->head == stable_node) {
> +	if (&kfolio->page == page && rmap_item->head == stable_node) {
>  		folio_put(kfolio);
>  		return;
>  	}

Linus has already asked us to avoid this "funky sh*t":

https://lkml.kernel.org/r/CAHk-=wicaWSn3JLwpexH=gu1HoHWpecyWoLYBwD3qPd0-t9aJA@mail.gmail.com

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ