This saves a few bytes of memory but it also makes it clear to the reader
what data is used for what.
        dev_set_promiscuity(dev, 1);
        dev_hold(dev);
        p->port_no = port_no;
+#ifdef SUPPORT_SNAT
        spin_lock_init(&p->lock);
+#endif
        p->dp = dp;
        p->dev = dev;
        if (port_no != ODPP_LOCAL)
 
 
 struct net_bridge_port {
        u16 port_no;
-       spinlock_t lock;
        struct datapath *dp;
        struct net_device *dev;
        struct kobject kobj;
-       struct snat_conf *snat;  /* Only set if SNAT is configured for this port. */
+#ifdef SUPPORT_SNAT
+       spinlock_t lock;
+       struct snat_conf *snat;
+#endif
        struct list_head node;   /* Element in datapath.ports. */
 };