linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bagas Sanjaya <bagasdotme@gmail.com>
To: Phillip Lougher <phillip@squashfs.org.uk>
Cc: hsinyi@chromium.org, linux-kernel@vger.kernel.org,
	marcmiltenberger@gmail.com, mirsad.todorovac@alu.unizg.hr,
	nicememory@gmail.com, regressions@leemhuis.info,
	regressions@lists.linux.dev, srw@sladewatkins.net
Subject: Re: BISECT result: 6.0.0-RC kernels trigger Firefox snap bug with 6.0.0-rc3 through 6.0.0-rc7
Date: Wed, 19 Oct 2022 14:53:32 +0700	[thread overview]
Message-ID: <54964dcf-6c98-464f-d1ad-e2d484c9c953@gmail.com> (raw)
In-Reply-To: <20221018174157.1897-1-phillip@squashfs.org.uk>

On 10/19/22 00:41, Phillip Lougher wrote:
> This diff has fixed the problem with my repoducer.
> Please test and report your results.
> 
> Phillip
> 
> diff --git a/fs/squashfs/file.c b/fs/squashfs/file.c
> index e56510964b22..e526eb7a1658 100644
> --- a/fs/squashfs/file.c
> +++ b/fs/squashfs/file.c
> @@ -557,6 +557,7 @@ static void squashfs_readahead(struct readahead_control *ractl)
>  		int res, bsize;
>  		u64 block = 0;
>  		unsigned int expected;
> +		struct page *last_page;
>  
>  		nr_pages = __readahead_batch(ractl, pages, max_pages);
>  		if (!nr_pages)
> @@ -593,15 +594,15 @@ static void squashfs_readahead(struct readahead_control *ractl)
>  
>  		res = squashfs_read_data(inode->i_sb, block, bsize, NULL, actor);
>  
> -		squashfs_page_actor_free(actor);
> +		last_page = squashfs_page_actor_free(actor);
>  
>  		if (res == expected) {
>  			int bytes;
>  
>  			/* Last page (if present) may have trailing bytes not filled */
>  			bytes = res % PAGE_SIZE;
> -			if (pages[nr_pages - 1]->index == file_end && bytes)
> -				memzero_page(pages[nr_pages - 1], bytes,
> +			if (index == file_end && bytes && last_page)
> +				memzero_page(last_page, bytes,
>  					     PAGE_SIZE - bytes);
>  
>  			for (i = 0; i < nr_pages; i++) {
> diff --git a/fs/squashfs/page_actor.c b/fs/squashfs/page_actor.c
> index 54b93bf4a25c..6aa38f88e31c 100644
> --- a/fs/squashfs/page_actor.c
> +++ b/fs/squashfs/page_actor.c
> @@ -53,6 +53,7 @@ struct squashfs_page_actor *squashfs_page_actor_init(void **buffer,
>  	actor->pages = pages;
>  	actor->next_page = 0;
>  	actor->tmp_buffer = NULL;
> +	actor->last_page = NULL;
>  	actor->squashfs_first_page = cache_first_page;
>  	actor->squashfs_next_page = cache_next_page;
>  	actor->squashfs_finish_page = cache_finish_page;
> @@ -71,11 +72,13 @@ static void *handle_next_page(struct squashfs_page_actor *actor)
>  			(actor->next_index != actor->page[actor->next_page]->index)) {
>  		actor->next_index++;
>  		actor->returned_pages++;
> +		actor->last_page = NULL;
>  		return actor->alloc_buffer ? actor->tmp_buffer : ERR_PTR(-ENOMEM);
>  	}
>  
>  	actor->next_index++;
>  	actor->returned_pages++;
> +	actor->last_page = actor->page[actor->next_page];
>  	return actor->pageaddr = kmap_local_page(actor->page[actor->next_page++]);
>  }
>  
> diff --git a/fs/squashfs/page_actor.h b/fs/squashfs/page_actor.h
> index 95ffbb543d91..97d4983559b1 100644
> --- a/fs/squashfs/page_actor.h
> +++ b/fs/squashfs/page_actor.h
> @@ -16,6 +16,7 @@ struct squashfs_page_actor {
>  	void    *(*squashfs_first_page)(struct squashfs_page_actor *);
>  	void    *(*squashfs_next_page)(struct squashfs_page_actor *);
>  	void    (*squashfs_finish_page)(struct squashfs_page_actor *);
> +	struct page *last_page;
>  	int	pages;
>  	int	length;
>  	int	next_page;
> @@ -29,10 +30,13 @@ extern struct squashfs_page_actor *squashfs_page_actor_init(void **buffer,
>  extern struct squashfs_page_actor *squashfs_page_actor_init_special(
>  				struct squashfs_sb_info *msblk,
>  				struct page **page, int pages, int length);
> -static inline void squashfs_page_actor_free(struct squashfs_page_actor *actor)
> +static inline struct page *squashfs_page_actor_free(struct squashfs_page_actor *actor)
>  {
> +	struct page *last_page = actor->last_page;
> +
>  	kfree(actor->tmp_buffer);
>  	kfree(actor);
> +	return last_page;
>  }
>  static inline void *squashfs_first_page(struct squashfs_page_actor *actor)
>  {

The fixup makes regression gone, thanks.

Tested-by: Bagas Sanjaya <bagasdotme@gmail.com>

-- 
An old man doll... just what I always wanted! - Clara


  parent reply	other threads:[~2022-10-19  7:53 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-27 17:57 6.0.0-RC kernels trigger Firefox snap bug with 6.0.0-rc3 through 6.0.0-rc7 Mirsad Goran Todorovac
2022-09-30 10:48 ` BUG: " Mirsad Todorovac
2022-09-30 11:21   ` Slade Watkins
2022-09-30 11:44     ` Mirsad Todorovac
2022-09-30 12:03       ` Slade Watkins
2022-09-30 18:27         ` Slade Watkins
2022-10-03  8:18           ` Mirsad Goran Todorovac
2022-10-07  8:47             ` Slade Watkins
2022-10-07 10:55               ` Mirsad Goran Todorovac
2022-10-06 10:39   ` Marc Miltenberger
2022-10-06 16:27     ` Slade Watkins
2022-10-06 12:00 ` Thorsten Leemhuis
2022-10-06 12:25   ` Thorsten Leemhuis
2022-10-06 12:43     ` Mirsad Todorovac
2022-10-06 13:23       ` Thorsten Leemhuis
     [not found]         ` <c05134cc-92fa-dac2-e738-cf6fae194521@alu.unizg.hr>
2022-10-06 16:58           ` Thorsten Leemhuis
     [not found]             ` <f23494b5-b4ea-a32a-e260-4541039dedc8@alu.unizg.hr>
2022-10-07  6:09               ` Mirsad Goran Todorovac
2022-10-07  6:31               ` Mirsad Goran Todorovac
2022-10-08 13:41             ` Mirsad Goran Todorovac
2022-10-08 16:46               ` Mirsad Goran Todorovac
     [not found]               ` <c40786ab-8b3b-9b64-683f-dac589c024df@alu.unizg.hr>
2022-10-09  6:45                 ` BUG reproduced: " Thorsten Leemhuis
2022-10-09 22:45                   ` Slade Watkins
2022-10-11 17:53                     ` Mirsad Goran Todorovac
2022-10-12  6:05                 ` Mirsad Todorovac
2022-10-12 22:58                   ` Slade Watkins
2022-10-06 12:38   ` Mirsad Todorovac
2022-10-12  7:46 ` Bagas Sanjaya
2022-10-13 13:24   ` Mirsad Goran Todorovac
2022-10-14 10:32     ` Mirsad Todorovac
2022-10-14 12:28       ` Bagas Sanjaya
2022-10-14 15:06         ` Mirsad Todorovac
2022-10-14 21:44         ` Mirsad Goran Todorovac
     [not found]           ` <ddf13e46-c091-80b2-3b57-c43ac45435f0@alu.unizg.hr>
2022-10-15 14:59             ` Fwd: BISECT result: " Mirsad Goran Todorovac
2022-10-15 15:32             ` Thorsten Leemhuis
2022-10-15 20:59               ` Phillip Lougher
2022-10-16 12:21                 ` Bagas Sanjaya
2022-10-16 12:24                   ` Bagas Sanjaya
2022-10-16 12:43                     ` Thorsten Leemhuis
2022-11-04 12:06                       ` BISECT result: 6.0.0-RC kernels trigger Firefox snap bug with 6.0.0-rc3 through 6.0.0-rc7 #forregzbot Thorsten Leemhuis
2022-10-17  9:45                   ` BISECT result: 6.0.0-RC kernels trigger Firefox snap bug with 6.0.0-rc3 through 6.0.0-rc7 Bagas Sanjaya
2022-10-17 12:32                     ` Bagas Sanjaya
2022-10-17 17:25                       ` Phillip Lougher
2022-10-18  1:38                         ` Bagas Sanjaya
2022-10-18  8:35                     ` Bagas Sanjaya
2022-10-16 15:55                 ` Mirsad Goran Todorovac
2022-10-16 19:55                   ` Phillip Lougher
2022-10-16 20:19                     ` Phillip Lougher
2022-10-17  2:03                       ` Bagas Sanjaya
2022-10-17  2:41                         ` Mirsad Goran Todorovac
2022-10-17  4:15                           ` Bagas Sanjaya
2022-10-17  8:32                             ` Mirsad Goran Todorovac
2022-10-17 13:22                     ` Mirsad Goran Todorovac
2022-10-17 13:59                       ` Phillip Lougher
2022-10-18  5:49                         ` Mirsad Todorovac
2022-10-18  2:15                 ` Jintao Yin
2022-10-18  6:52                   ` Mirsad Todorovac
2022-10-18  8:24                     ` Hsin-Yi Wang
2022-10-18  9:23                       ` Mirsad Todorovac
2022-10-18 12:59                       ` Bagas Sanjaya
2022-10-18 13:38                         ` Phillip Lougher
2022-10-18 13:36                       ` Phillip Lougher
2022-10-18  7:23                   ` Bagas Sanjaya
2022-10-18  8:33                     ` Bagas Sanjaya
2022-10-18 17:15                   ` Phillip Lougher
2022-10-18 17:41                     ` Mirsad Goran Todorovac
2022-10-18 17:41                     ` Phillip Lougher
     [not found]                       ` <1b41bf99-754e-8b90-cc2c-67f50642e2dc@alu.unizg.hr>
2022-10-18 21:34                         ` Mirsad Goran Todorovac
2022-10-19  5:17                       ` Slade Watkins
2022-10-19 11:07                         ` Mirsad Goran Todorovac
2022-10-19  7:53                       ` Bagas Sanjaya [this message]
2022-10-20  6:59                       ` Jintao Yin
2022-10-20  7:43                       ` Jintao Yin
2022-10-20  9:51                         ` Mirsad Goran Todorovac
2022-10-20 13:02                         ` Bagas Sanjaya
2022-10-20 13:55                       ` Jintao Yin
2022-10-20 15:00                         ` Mirsad Todorovac
2022-10-20 15:45                         ` Phillip Lougher
2022-10-20 23:23                           ` Bagas Sanjaya
2022-10-20 23:44                             ` Slade Watkins
2022-10-21  1:48                               ` Phillip Lougher
2022-10-21  7:12                                 ` Mirsad Goran Todorovac
2022-10-21  8:33                                 ` Mirsad Goran Todorovac
2022-10-21  3:09                           ` Jintao Yin
2022-10-20 15:49                         ` Phillip Lougher
2022-10-20 16:00                         ` Mirsad Todorovac

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=54964dcf-6c98-464f-d1ad-e2d484c9c953@gmail.com \
    --to=bagasdotme@gmail.com \
    --cc=hsinyi@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcmiltenberger@gmail.com \
    --cc=mirsad.todorovac@alu.unizg.hr \
    --cc=nicememory@gmail.com \
    --cc=phillip@squashfs.org.uk \
    --cc=regressions@leemhuis.info \
    --cc=regressions@lists.linux.dev \
    --cc=srw@sladewatkins.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).