|
@@ -2316,6 +2316,7 @@ static int ehea_setup_single_port(struct ehea_port *port,
|
|
|
struct ehea_adapter *adapter = port->adapter;
|
|
|
struct hcp_ehea_port_cb4 *cb4;
|
|
|
u32 *dn_log_port_id;
|
|
|
+ int jumbo = 0;
|
|
|
|
|
|
sema_init(&port->port_lock, 1);
|
|
|
port->state = EHEA_PORT_DOWN;
|
|
@@ -2357,13 +2358,25 @@ static int ehea_setup_single_port(struct ehea_port *port,
|
|
|
if (!cb4) {
|
|
|
ehea_error("no mem for cb4");
|
|
|
} else {
|
|
|
- cb4->jumbo_frame = 1;
|
|
|
- hret = ehea_h_modify_ehea_port(adapter->handle,
|
|
|
- port->logical_port_id,
|
|
|
- H_PORT_CB4, H_PORT_CB4_JUMBO,
|
|
|
- cb4);
|
|
|
- if (hret != H_SUCCESS) {
|
|
|
- ehea_info("Jumbo frames not activated");
|
|
|
+ hret = ehea_h_query_ehea_port(adapter->handle,
|
|
|
+ port->logical_port_id,
|
|
|
+ H_PORT_CB4,
|
|
|
+ H_PORT_CB4_JUMBO, cb4);
|
|
|
+
|
|
|
+ if (hret == H_SUCCESS) {
|
|
|
+ if (cb4->jumbo_frame)
|
|
|
+ jumbo = 1;
|
|
|
+ else {
|
|
|
+ cb4->jumbo_frame = 1;
|
|
|
+ hret = ehea_h_modify_ehea_port(adapter->handle,
|
|
|
+ port->
|
|
|
+ logical_port_id,
|
|
|
+ H_PORT_CB4,
|
|
|
+ H_PORT_CB4_JUMBO,
|
|
|
+ cb4);
|
|
|
+ if (hret == H_SUCCESS)
|
|
|
+ jumbo = 1;
|
|
|
+ }
|
|
|
}
|
|
|
kfree(cb4);
|
|
|
}
|
|
@@ -2402,6 +2415,9 @@ static int ehea_setup_single_port(struct ehea_port *port,
|
|
|
goto out_free;
|
|
|
}
|
|
|
|
|
|
+ ehea_info("%s: Jumbo frames are %sabled", dev->name,
|
|
|
+ jumbo == 1 ? "en" : "dis");
|
|
|
+
|
|
|
port->netdev = dev;
|
|
|
ret = 0;
|
|
|
goto out;
|