2009-12-09 13:40:03

by Mike Frysinger

[permalink] [raw]
Subject: [PATCH] smc91x: fix unused flags warnings on UP systems

Local flags variables will be declared whenever these functions get used,
but obviously on UP systems the flags parameter won't be touched. So add
some dummy ops that get optimized away anyways to satisfy gcc's warnings.

Signed-off-by: Mike Frysinger <[email protected]>
---
drivers/net/smc91x.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index ae4983a..b0c92b6 100644
--- a/drivers/net/smc91x.c
+++ b/drivers/net/smc91x.c
@@ -534,9 +534,9 @@ static inline void smc_rcv(struct net_device *dev)
#define smc_special_lock(lock, flags) spin_lock_irqsave(lock, flags)
#define smc_special_unlock(lock, flags) spin_unlock_irqrestore(lock, flags)
#else
-#define smc_special_trylock(lock, flags) (1)
-#define smc_special_lock(lock, flags) do { } while (0)
-#define smc_special_unlock(lock, flags) do { } while (0)
+#define smc_special_trylock(lock, flags) (flags == flags)
+#define smc_special_lock(lock, flags) do { flags = 0; } while (0)
+#define smc_special_unlock(lock, flags) do { flags = 0; } while (0)
#endif

/*
--
1.6.5.5


2009-12-09 14:51:10

by Nicolas Pitre

[permalink] [raw]
Subject: Re: [PATCH] smc91x: fix unused flags warnings on UP systems

On Wed, 9 Dec 2009, Mike Frysinger wrote:

> Local flags variables will be declared whenever these functions get used,
> but obviously on UP systems the flags parameter won't be touched. So add
> some dummy ops that get optimized away anyways to satisfy gcc's warnings.
>
> Signed-off-by: Mike Frysinger <[email protected]>

Acked-by: Nicolas Pitre <[email protected]>


> ---
> drivers/net/smc91x.c | 6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
> index ae4983a..b0c92b6 100644
> --- a/drivers/net/smc91x.c
> +++ b/drivers/net/smc91x.c
> @@ -534,9 +534,9 @@ static inline void smc_rcv(struct net_device *dev)
> #define smc_special_lock(lock, flags) spin_lock_irqsave(lock, flags)
> #define smc_special_unlock(lock, flags) spin_unlock_irqrestore(lock, flags)
> #else
> -#define smc_special_trylock(lock, flags) (1)
> -#define smc_special_lock(lock, flags) do { } while (0)
> -#define smc_special_unlock(lock, flags) do { } while (0)
> +#define smc_special_trylock(lock, flags) (flags == flags)
> +#define smc_special_lock(lock, flags) do { flags = 0; } while (0)
> +#define smc_special_unlock(lock, flags) do { flags = 0; } while (0)
> #endif
>
> /*
> --
> 1.6.5.5
>

2009-12-11 23:15:00

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] smc91x: fix unused flags warnings on UP systems

From: Mike Frysinger <[email protected]>
Date: Wed, 9 Dec 2009 08:40:04 -0500

> Local flags variables will be declared whenever these functions get used,
> but obviously on UP systems the flags parameter won't be touched. So add
> some dummy ops that get optimized away anyways to satisfy gcc's warnings.
>
> Signed-off-by: Mike Frysinger <[email protected]>

Applied, although I thought we had a standard macro to handle this
kind of case.

In any case, for future reference, the usual way to handle this is
usually "(void) var;"

2009-12-13 02:49:46

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] smc91x: fix unused flags warnings on UP systems

On Fri, 11 Dec 2009 15:15:02 -0800 (PST) David Miller <[email protected]> wrote:

> From: Mike Frysinger <[email protected]>
> Date: Wed, 9 Dec 2009 08:40:04 -0500
>
> > Local flags variables will be declared whenever these functions get used,
> > but obviously on UP systems the flags parameter won't be touched. So add
> > some dummy ops that get optimized away anyways to satisfy gcc's warnings.
> >
> > Signed-off-by: Mike Frysinger <[email protected]>
>
> Applied, although I thought we had a standard macro to handle this
> kind of case.

Nope.

Coverting them to real C functions fixes the warning, and provides
previously-absent typechecking. ie, (untested):

--- a/drivers/net/smc91x.c~a
+++ a/drivers/net/smc91x.c
@@ -534,9 +534,18 @@ static inline void smc_rcv(struct net_d
#define smc_special_lock(lock, flags) spin_lock_irqsave(lock, flags)
#define smc_special_unlock(lock, flags) spin_unlock_irqrestore(lock, flags)
#else
-#define smc_special_trylock(lock, flags) (1)
-#define smc_special_lock(lock, flags) do { } while (0)
-#define smc_special_unlock(lock, flags) do { } while (0)
+static inline int smc_special_trylock(spinlock_t *lock, unsigned long flags)
+{
+ return 1;
+}
+
+static inline void smc_special_lock(spinlock_t *lock, unsigned long flags)
+{
+}
+
+static inline void smc_special_unlock(spinlock_t *lock, unsigned long flags)
+{
+}
#endif

/*
_