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] [day] [month] [year] [list]
Date:	Thu, 1 Oct 2015 16:15:45 -0700
From:	Andrew Morton <akpm@...ux-foundation.org>
To:	Sudip Mukherjee <sudipm.mukherjee@...il.com>
Cc:	Joern Engel <joern@...fs.org>,
	Prasad Joshi <prasadjoshi.linux@...il.com>,
	linux-kernel@...r.kernel.org, logfs@...fs.org
Subject: Re: [PATCH] logfs: fix build warning

On Thu, 10 Sep 2015 15:41:04 +0530 Sudip Mukherjee <sudipm.mukherjee@...il.com> wrote:

> While building we were getting build warning of:
> 
> fs/logfs/dev_bdev.c: In function '__bdev_writeseg':
> include/linux/kernel.h:601:17: warning: comparison of distinct pointer types lacks a cast [enabled by default]
>   (void) (&_min1 == &_min2);  \
> fs/logfs/dev_bdev.c:84:14: note: in  expansion of macro 'min'
>   max_pages = min(nr_pages, BIO_MAX_PAGES);
> 
> fs/logfs/dev_bdev.c: In function 'do_erase':
> include/linux/kernel.h:601:17: warning: comparison of distinct pointer types lacks a cast [enabled by default]
>  (void) (&_min1 == &_min2);  \
> fs/logfs/dev_bdev.c:174:14: note: in expansion of macro 'min'
>  max_pages = min(nr_pages, BIO_MAX_PAGES);
> 
> Lets use min_t and mention the type.
> 
> ...
>
> --- a/fs/logfs/dev_bdev.c
> +++ b/fs/logfs/dev_bdev.c
> @@ -81,7 +81,7 @@ static int __bdev_writeseg(struct super_block *sb, u64 ofs, pgoff_t index,
>  	unsigned int max_pages;
>  	int i;
>  
> -	max_pages = min(nr_pages, BIO_MAX_PAGES);
> +	max_pages = min_t(size_t, nr_pages, BIO_MAX_PAGES);
>  
>  	bio = bio_alloc(GFP_NOFS, max_pages);
>  	BUG_ON(!bio);
> @@ -171,7 +171,7 @@ static int do_erase(struct super_block *sb, u64 ofs, pgoff_t index,
>  	unsigned int max_pages;
>  	int i;
>  
> -	max_pages = min(nr_pages, BIO_MAX_PAGES);
> +	max_pages = min_t(size_t, nr_pages, BIO_MAX_PAGES);
>  
>  	bio = bio_alloc(GFP_NOFS, max_pages);
>  	BUG_ON(!bio);

I don't think it's logical for either __bdev_writeseg() or do_erase()
to use size_t for `nr_pages'.  For "number of pagecache pages" we'd
normally use pgoff_t or unsigned long.

But they'd generate warnings as well, because BIO_MAX_PAGES is plain
old `int'.  Ho hum.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ