> Especially for the mesh_dev thing, you should probably have a > static inline that returns priv->mesh_dev (mesh case) and NULL > (non-mesh case) and rely on the compiler to elide as much code > as possible. > > E.g. this: > > +#ifdef CONFIG_LIBERTAS_MESH > > if (priv->mesh_dev && (priv->mesh_connect_status == > > LBS_CONNECTED)) netif_wake_queue(priv->mesh_dev); > > +#endif > > wouldn't then need an ifdef. Ah, I thought that the compiler would barf about the priv->mesh_connect_status, because this is no longer in struct lbs_private. So I tried your suggestion and, yes, the compiler barfs: static inline struct net_device *lbs_mesh_dev(struct lbs_private *priv) { #ifdef CONFIG_LIBERTAS_MESH return priv->mesh_dev; #else return NULL; #endif } if (lbs_mesh_dev(priv) && dev == lbs_mesh_dev(priv)) { priv->mesh_open = 1; priv->mesh_connect_status = LBS_CONNECTED; netif_carrier_on(dev); } else { priv->infra_open = 1; if (priv->connect_status == LBS_CONNECTED) netif_carrier_on(dev); else netif_carrier_off(dev); } drivers/net/wireless/libertas/main.c: In function 'lbs_dev_open': drivers/net/wireless/libertas/main.c:414: error: 'struct lbs_private' has no member named 'mesh_open' drivers/net/wireless/libertas/main.c:415: error: 'struct lbs_private' has no member named 'mesh_connect_status' -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html