On Mon, Nov 11, 2013 at 05:33:09PM +0100, Simon Wunderlich wrote:
diff --git a/compat.h b/compat.h index 186547b..a99c9d5 100644 --- a/compat.h +++ b/compat.h @@ -160,14 +160,12 @@ static inline int batadv_param_set_copystring(const char *val, #define NET_ADDR_RANDOM 0
#define netdev_master_upper_dev_get_rcu(dev) \
- upper; \
- rcu_read_unlock(); \
- NULL; \ if (dev->br_port ? 1 : 0) { \
dev_hold(dev); \ return dev; \ } \rcu_read_unlock(); \
-\
- return NULL\
This approach unfortunately doesn't work and leads to crashes because we assign NULL to upper and therefore dev, too, leading to a null pointer exception when trying to access dev->br-port.
As the smatch warning is just a compat warning not leading to any issues despite that, could we simply silence the build system to ignore this instead?