diff mbox series

mm/shmem: initialize folio to NULL

Message ID 20220509123116.3169267-1-trix@redhat.com (mailing list archive)
State New
Headers show
Series mm/shmem: initialize folio to NULL | expand

Commit Message

Tom Rix May 9, 2022, 12:31 p.m. UTC
The clang build fails with
mm/shmem.c:1704:7: error: variable 'folio' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
  if (!page) {
       ^~~~~
The error handler for !page jumps to an if-check for an unset folio.
So initialize folio to NULL.

Fixes: 2b58b3f33ba2 ("mm/shmem: convert shmem_swapin_page() to shmem_swapin_folio()")
Signed-off-by: Tom Rix <trix@redhat.com>
---
 mm/shmem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Matthew Wilcox May 9, 2022, 1:59 p.m. UTC | #1
On Mon, May 09, 2022 at 08:31:16AM -0400, Tom Rix wrote:
> The clang build fails with
> mm/shmem.c:1704:7: error: variable 'folio' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
>   if (!page) {
>        ^~~~~
> The error handler for !page jumps to an if-check for an unset folio.
> So initialize folio to NULL.

I appreciate you're trying to help, but the fourth report of a problem
adds more noise than utility.

https://lore.kernel.org/linux-mm/?q=shmem+folio

shows emails about this from the cgelbot, Dan Carpenter, SeongJae Park,
Colin King, Nathan Chancellor and Sebastian Siewior.  So actually you
were seventh, not fourth.
Tom Rix May 9, 2022, 2:51 p.m. UTC | #2
On 5/9/22 6:59 AM, Matthew Wilcox wrote:
> On Mon, May 09, 2022 at 08:31:16AM -0400, Tom Rix wrote:
>> The clang build fails with
>> mm/shmem.c:1704:7: error: variable 'folio' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
>>    if (!page) {
>>         ^~~~~
>> The error handler for !page jumps to an if-check for an unset folio.
>> So initialize folio to NULL.
> I appreciate you're trying to help, but the fourth report of a problem
> adds more noise than utility.
>
> https://lore.kernel.org/linux-mm/?q=shmem+folio
>
> shows emails about this from the cgelbot, Dan Carpenter, SeongJae Park,
> Colin King, Nathan Chancellor and Sebastian Siewior.  So actually you
> were seventh, not fourth.

 From my point of view, the build has been broken for a week.

It would be good if this and the other folio issue was fixed in 
linux-next soon.

Tom

>
Matthew Wilcox May 9, 2022, 2:53 p.m. UTC | #3
On Mon, May 09, 2022 at 07:51:25AM -0700, Tom Rix wrote:
> 
> On 5/9/22 6:59 AM, Matthew Wilcox wrote:
> > On Mon, May 09, 2022 at 08:31:16AM -0400, Tom Rix wrote:
> > > The clang build fails with
> > > mm/shmem.c:1704:7: error: variable 'folio' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
> > >    if (!page) {
> > >         ^~~~~
> > > The error handler for !page jumps to an if-check for an unset folio.
> > > So initialize folio to NULL.
> > I appreciate you're trying to help, but the fourth report of a problem
> > adds more noise than utility.
> > 
> > https://lore.kernel.org/linux-mm/?q=shmem+folio
> > 
> > shows emails about this from the cgelbot, Dan Carpenter, SeongJae Park,
> > Colin King, Nathan Chancellor and Sebastian Siewior.  So actually you
> > were seventh, not fourth.
> 
> From my point of view, the build has been broken for a week.

Yeah, shit happens when you're trying to fix patches and attend a
conference at the same time.

> It would be good if this and the other folio issue was fixed in linux-next
> soon.

As you can see, I sent a replacement patch series on the 4th which fixes
far more than the two problems you noticed.
https://lore.kernel.org/linux-mm/20220504182857.4013401-1-willy@infradead.org/

I can do no more than this.
diff mbox series

Patch

diff --git a/mm/shmem.c b/mm/shmem.c
index 107f1e4dd0aa..7faaa61ff7fa 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -1682,7 +1682,7 @@  static int shmem_swapin_folio(struct inode *inode, pgoff_t index,
 	struct shmem_inode_info *info = SHMEM_I(inode);
 	struct mm_struct *charge_mm = vma ? vma->vm_mm : NULL;
 	struct page *page;
-	struct folio *folio;
+	struct folio *folio = NULL;
 	swp_entry_t swap;
 	int error;