void rxe_set_mtu(struct rxe_dev *rxe, unsigned int ndev_mtu) { struct rxe_port *port = &rxe->port; enum ib_mtu mtu; mtu = eth_mtu_int_to_enum(ndev_mtu); /* Make sure that new MTU in range */ mtu = mtu ? min_t(enum ib_mtu, mtu, IB_MTU_4096) : IB_MTU_256; port->attr.active_mtu = mtu; port->mtu_cap = ib_mtu_enum_to_int(mtu); }
int rxe_set_mtu(struct rxe_dev *rxe, unsigned int ndev_mtu, unsigned int port_num) { struct rxe_port *port = &rxe->port[port_num - 1]; enum rxe_mtu mtu; mtu = eth_mtu_int_to_enum(ndev_mtu); if (!mtu) return -EINVAL; /* Set the port mtu to min(feasible, preferred) */ mtu = min_t(enum rxe_mtu, mtu, rxe->pref_mtu); port->attr.active_mtu = (enum ib_mtu __force)mtu; port->mtu_cap = rxe_mtu_enum_to_int(mtu); return 0; }