mlx4_en: Remove pauses module parameters.
[safe/jmp/linux-2.6] / drivers / net / bonding / bond_3ad.c
index d02e852..b9dd409 100644 (file)
@@ -95,34 +95,6 @@ static struct mac_addr null_mac_addr = {{0, 0, 0, 0, 0, 0}};
 static u16 ad_ticks_per_sec;
 static const int ad_delta_in_ticks = (AD_TIMER_INTERVAL * HZ) / 1000;
 
-// ================= 3AD api to bonding and kernel code ==================
-static u16 __get_link_speed(struct port *port);
-static u8 __get_duplex(struct port *port);
-static inline void __initialize_port_locks(struct port *port);
-//conversions
-static u16 __ad_timer_to_ticks(u16 timer_type, u16 Par);
-
-
-// ================= ad code helper functions ==================
-//needed by ad_rx_machine(...)
-static void __record_pdu(struct lacpdu *lacpdu, struct port *port);
-static void __record_default(struct port *port);
-static void __update_selected(struct lacpdu *lacpdu, struct port *port);
-static void __update_default_selected(struct port *port);
-static void __choose_matched(struct lacpdu *lacpdu, struct port *port);
-static void __update_ntt(struct lacpdu *lacpdu, struct port *port);
-
-//needed for ad_mux_machine(..)
-static void __attach_bond_to_agg(struct port *port);
-static void __detach_bond_from_agg(struct port *port);
-static int __agg_ports_are_ready(struct aggregator *aggregator);
-static void __set_agg_ports_ready(struct aggregator *aggregator, int val);
-
-//needed for ad_agg_selection_logic(...)
-static u32 __get_agg_bandwidth(struct aggregator *aggregator);
-static struct aggregator *__get_active_agg(struct aggregator *aggregator);
-
-
 // ================= main 802.3ad protocol functions ==================
 static int ad_lacpdu_send(struct port *port);
 static int ad_marker_send(struct port *port, struct bond_marker *marker);
@@ -483,24 +455,25 @@ static u16 __ad_timer_to_ticks(u16 timer_type, u16 par)
  */
 static void __record_pdu(struct lacpdu *lacpdu, struct port *port)
 {
-       // validate lacpdu and port
        if (lacpdu && port) {
+               struct port_params *partner = &port->partner_oper;
+
                // record the new parameter values for the partner operational
-               port->partner_oper.port_number = ntohs(lacpdu->actor_port);
-               port->partner_oper.port_priority = ntohs(lacpdu->actor_port_priority);
-               port->partner_oper.system = lacpdu->actor_system;
-               port->partner_oper.system_priority = ntohs(lacpdu->actor_system_priority);
-               port->partner_oper.key = ntohs(lacpdu->actor_key);
-               port->partner_oper.port_state = lacpdu->actor_state;
+               partner->port_number = ntohs(lacpdu->actor_port);
+               partner->port_priority = ntohs(lacpdu->actor_port_priority);
+               partner->system = lacpdu->actor_system;
+               partner->system_priority = ntohs(lacpdu->actor_system_priority);
+               partner->key = ntohs(lacpdu->actor_key);
+               partner->port_state = lacpdu->actor_state;
 
                // set actor_oper_port_state.defaulted to FALSE
                port->actor_oper_port_state &= ~AD_STATE_DEFAULTED;
 
                // set the partner sync. to on if the partner is sync. and the port is matched
                if ((port->sm_vars & AD_PORT_MATCHED) && (lacpdu->actor_state & AD_STATE_SYNCHRONIZATION)) {
-                       port->partner_oper.port_state |= AD_STATE_SYNCHRONIZATION;
+                       partner->port_state |= AD_STATE_SYNCHRONIZATION;
                } else {
-                       port->partner_oper.port_state &= ~AD_STATE_SYNCHRONIZATION;
+                       partner->port_state &= ~AD_STATE_SYNCHRONIZATION;
                }
        }
 }
@@ -515,15 +488,10 @@ static void __record_pdu(struct lacpdu *lacpdu, struct port *port)
  */
 static void __record_default(struct port *port)
 {
-       // validate the port
        if (port) {
                // record the partner admin parameters
-               port->partner_oper.port_number = port->partner_admin.port_number;
-               port->partner_oper.port_priority = port->partner_admin.port_priority;
-               port->partner_oper.system = port->partner_admin.system;
-               port->partner_oper.system_priority = port->partner_admin.system_priority;
-               port->partner_oper.key = port->partner_admin.key;
-               port->partner_oper.port_state = port->partner_admin.port_state;
+               memcpy(&port->partner_oper, &port->partner_admin,
+                      sizeof(struct port_params));
 
                // set actor_oper_port_state.defaulted to true
                port->actor_oper_port_state |= AD_STATE_DEFAULTED;
@@ -545,16 +513,16 @@ static void __record_default(struct port *port)
  */
 static void __update_selected(struct lacpdu *lacpdu, struct port *port)
 {
-       // validate lacpdu and port
        if (lacpdu && port) {
+               const struct port_params *partner = &port->partner_oper;
+
                // check if any parameter is different
-               if ((ntohs(lacpdu->actor_port) != port->partner_oper.port_number) ||
-                   (ntohs(lacpdu->actor_port_priority) != port->partner_oper.port_priority) ||
-                   MAC_ADDRESS_COMPARE(&(lacpdu->actor_system), &(port->partner_oper.system)) ||
-                   (ntohs(lacpdu->actor_system_priority) != port->partner_oper.system_priority) ||
-                   (ntohs(lacpdu->actor_key) != port->partner_oper.key) ||
-                   ((lacpdu->actor_state & AD_STATE_AGGREGATION) != (port->partner_oper.port_state & AD_STATE_AGGREGATION))
-                  ) {
+               if (ntohs(lacpdu->actor_port) != partner->port_number
+                   || ntohs(lacpdu->actor_port_priority) != partner->port_priority
+                   || MAC_ADDRESS_COMPARE(&lacpdu->actor_system, &partner->system)
+                   || ntohs(lacpdu->actor_system_priority) != partner->system_priority
+                   || ntohs(lacpdu->actor_key) != partner->key
+                   || (lacpdu->actor_state & AD_STATE_AGGREGATION) != (partner->port_state & AD_STATE_AGGREGATION)) {
                        // update the state machine Selected variable
                        port->sm_vars &= ~AD_PORT_SELECTED;
                }
@@ -575,16 +543,18 @@ static void __update_selected(struct lacpdu *lacpdu, struct port *port)
  */
 static void __update_default_selected(struct port *port)
 {
-       // validate the port
        if (port) {
+               const struct port_params *admin = &port->partner_admin;
+               const struct port_params *oper = &port->partner_oper;
+
                // check if any parameter is different
-               if ((port->partner_admin.port_number != port->partner_oper.port_number) ||
-                   (port->partner_admin.port_priority != port->partner_oper.port_priority) ||
-                   MAC_ADDRESS_COMPARE(&(port->partner_admin.system), &(port->partner_oper.system)) ||
-                   (port->partner_admin.system_priority != port->partner_oper.system_priority) ||
-                   (port->partner_admin.key != port->partner_oper.key) ||
-                   ((port->partner_admin.port_state & AD_STATE_AGGREGATION) != (port->partner_oper.port_state & AD_STATE_AGGREGATION))
-                  ) {
+               if (admin->port_number != oper->port_number
+                   || admin->port_priority != oper->port_priority
+                   || MAC_ADDRESS_COMPARE(&admin->system, &oper->system)
+                   || admin->system_priority != oper->system_priority
+                   || admin->key != oper->key
+                   || (admin->port_state & AD_STATE_AGGREGATION)
+                       != (oper->port_state & AD_STATE_AGGREGATION)) {
                        // update the state machine Selected variable
                        port->sm_vars &= ~AD_PORT_SELECTED;
                }
@@ -799,6 +769,7 @@ static struct aggregator *__get_active_agg(struct aggregator *aggregator)
 static inline void __update_lacpdu_from_port(struct port *port)
 {
        struct lacpdu *lacpdu = &port->lacpdu;
+       const struct port_params *partner = &port->partner_oper;
 
        /* update current actual Actor parameters */
        /* lacpdu->subtype                   initialized
@@ -819,12 +790,12 @@ static inline void __update_lacpdu_from_port(struct port *port)
         * lacpdu->partner_information_length initialized
         */
 
-       lacpdu->partner_system_priority = htons(port->partner_oper.system_priority);
-       lacpdu->partner_system = port->partner_oper.system;
-       lacpdu->partner_key = htons(port->partner_oper.key);
-       lacpdu->partner_port_priority = htons(port->partner_oper.port_priority);
-       lacpdu->partner_port = htons(port->partner_oper.port_number);
-       lacpdu->partner_state = port->partner_oper.port_state;
+       lacpdu->partner_system_priority = htons(partner->system_priority);
+       lacpdu->partner_system = partner->system;
+       lacpdu->partner_key = htons(partner->key);
+       lacpdu->partner_port_priority = htons(partner->port_priority);
+       lacpdu->partner_port = htons(partner->port_number);
+       lacpdu->partner_state = partner->port_state;
 
        /* lacpdu->reserved_3_2              initialized
         * lacpdu->tlv_type_collector_info   initialized
@@ -1679,6 +1650,14 @@ static void ad_initialize_agg(struct aggregator *aggregator)
  */
 static void ad_initialize_port(struct port *port, int lacp_fast)
 {
+       static const struct port_params tmpl = {
+               .system_priority = 0xffff,
+               .key             = 1,
+               .port_number     = 1,
+               .port_priority   = 0xff,
+               .port_state      = 1,
+       };
+
        if (port) {
                port->actor_port_number = 1;
                port->actor_port_priority = 0xff;
@@ -1695,18 +1674,9 @@ static void ad_initialize_port(struct port *port, int lacp_fast)
                        port->actor_oper_port_state |= AD_STATE_LACP_TIMEOUT;
                }
 
-               port->partner_admin.system = null_mac_addr;
-               port->partner_oper.system  = null_mac_addr;
-               port->partner_admin.system_priority = 0xffff;
-               port->partner_oper.system_priority  = 0xffff;
-               port->partner_admin.key = 1;
-               port->partner_oper.key  = 1;
-               port->partner_admin.port_number = 1;
-               port->partner_oper.port_number  = 1;
-               port->partner_admin.port_priority = 0xff;
-               port->partner_oper.port_priority  = 0xff;
-               port->partner_admin.port_state = 1;
-               port->partner_oper.port_state  = 1;
+               memcpy(&port->partner_admin, &tmpl, sizeof(tmpl));
+               memcpy(&port->partner_oper, &tmpl, sizeof(tmpl));
+
                port->is_enabled = 1;
                // ****** private parameters ******
                port->sm_vars = 0x3;