/**
  * __initialize_port_locks - initialize a port's STATE machine spinlock
- * @port: the port we're looking at
+ * @port: the slave of the port we're looking at
  *
  */
-static inline void __initialize_port_locks(struct port *port)
+static inline void __initialize_port_locks(struct slave *slave)
 {
        // make sure it isn't called twice
-       spin_lock_init(&(SLAVE_AD_INFO(port->slave).state_machine_lock));
+       spin_lock_init(&(SLAVE_AD_INFO(slave).state_machine_lock));
 }
 
 //conversions
 
                ad_initialize_port(port, bond->params.lacp_fast);
 
+               __initialize_port_locks(slave);
                port->slave = slave;
                port->actor_port_number = SLAVE_AD_INFO(slave).id;
                // key is determined according to the link speed, duplex and user key(which is yet not supported)
                port->next_port_in_aggregator = NULL;
 
                __disable_port(port);
-               __initialize_port_locks(port);
-
 
                // aggregator initialization
                aggregator = &(SLAVE_AD_INFO(slave).aggregator);