2015-11-20 14:41:08

by Jeff Layton

[permalink] [raw]
Subject: [PATCH] mm: fix up sparse warning in gfpflags_allow_blocking

sparse says:

include/linux/gfp.h:274:26: warning: incorrect type in return expression (different base types)
include/linux/gfp.h:274:26: expected bool
include/linux/gfp.h:274:26: got restricted gfp_t

...add a forced cast to silence the warning.

Cc: Mel Gorman <[email protected]>
Signed-off-by: Jeff Layton <[email protected]>
---
include/linux/gfp.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/gfp.h b/include/linux/gfp.h
index 6523109e136d..8942af0813e3 100644
--- a/include/linux/gfp.h
+++ b/include/linux/gfp.h
@@ -271,7 +271,7 @@ static inline int gfpflags_to_migratetype(const gfp_t gfp_flags)

static inline bool gfpflags_allow_blocking(const gfp_t gfp_flags)
{
- return gfp_flags & __GFP_DIRECT_RECLAIM;
+ return (bool __force)(gfp_flags & __GFP_DIRECT_RECLAIM);
}

#ifdef CONFIG_HIGHMEM
--
2.4.3


2015-11-23 09:50:52

by Michal Hocko

[permalink] [raw]
Subject: Re: [PATCH] mm: fix up sparse warning in gfpflags_allow_blocking

On Fri 20-11-15 09:40:59, Jeff Layton wrote:
> sparse says:
>
> include/linux/gfp.h:274:26: warning: incorrect type in return expression (different base types)
> include/linux/gfp.h:274:26: expected bool
> include/linux/gfp.h:274:26: got restricted gfp_t
>
> ...add a forced cast to silence the warning.
>
> Cc: Mel Gorman <[email protected]>
> Signed-off-by: Jeff Layton <[email protected]>
> ---
> include/linux/gfp.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/linux/gfp.h b/include/linux/gfp.h
> index 6523109e136d..8942af0813e3 100644
> --- a/include/linux/gfp.h
> +++ b/include/linux/gfp.h
> @@ -271,7 +271,7 @@ static inline int gfpflags_to_migratetype(const gfp_t gfp_flags)
>
> static inline bool gfpflags_allow_blocking(const gfp_t gfp_flags)
> {
> - return gfp_flags & __GFP_DIRECT_RECLAIM;
> + return (bool __force)(gfp_flags & __GFP_DIRECT_RECLAIM);

Wouldn't (gfp_flags & __GFP_DIRECT_RECLAIM) != 0 be easier/better to read?

--
Michal Hocko
SUSE Labs

2015-11-23 11:50:38

by Jeff Layton

[permalink] [raw]
Subject: Re: [PATCH] mm: fix up sparse warning in gfpflags_allow_blocking

On Mon, 23 Nov 2015 10:50:49 +0100
Michal Hocko <[email protected]> wrote:

> On Fri 20-11-15 09:40:59, Jeff Layton wrote:
> > sparse says:
> >
> > include/linux/gfp.h:274:26: warning: incorrect type in return expression (different base types)
> > include/linux/gfp.h:274:26: expected bool
> > include/linux/gfp.h:274:26: got restricted gfp_t
> >
> > ...add a forced cast to silence the warning.
> >
> > Cc: Mel Gorman <[email protected]>
> > Signed-off-by: Jeff Layton <[email protected]>
> > ---
> > include/linux/gfp.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/include/linux/gfp.h b/include/linux/gfp.h
> > index 6523109e136d..8942af0813e3 100644
> > --- a/include/linux/gfp.h
> > +++ b/include/linux/gfp.h
> > @@ -271,7 +271,7 @@ static inline int gfpflags_to_migratetype(const gfp_t gfp_flags)
> >
> > static inline bool gfpflags_allow_blocking(const gfp_t gfp_flags)
> > {
> > - return gfp_flags & __GFP_DIRECT_RECLAIM;
> > + return (bool __force)(gfp_flags & __GFP_DIRECT_RECLAIM);
>
> Wouldn't (gfp_flags & __GFP_DIRECT_RECLAIM) != 0 be easier/better to read?
>

Yeah, good point. Andrew, do you want me to respin that?

--
Jeff Layton <[email protected]>