Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ixgbe/if_sriov.c
Show First 20 Lines • Show All 364 Lines • ▼ Show 20 Lines | ixgbe_vf_reset_msg(struct adapter *adapter, struct ixgbe_vf *vf, uint32_t *msg) | ||||
} else | } else | ||||
ack = IXGBE_VT_MSGTYPE_NACK; | ack = IXGBE_VT_MSGTYPE_NACK; | ||||
ixgbe_vf_enable_transmit(adapter, vf); | ixgbe_vf_enable_transmit(adapter, vf); | ||||
ixgbe_vf_enable_receive(adapter, vf); | ixgbe_vf_enable_receive(adapter, vf); | ||||
vf->flags |= IXGBE_VF_CTS; | vf->flags |= IXGBE_VF_CTS; | ||||
resp[0] = IXGBE_VF_RESET | ack | IXGBE_VT_MSGTYPE_CTS; | resp[0] = IXGBE_VF_RESET | ack; | ||||
bcopy(vf->ether_addr, &resp[1], ETHER_ADDR_LEN); | bcopy(vf->ether_addr, &resp[1], ETHER_ADDR_LEN); | ||||
resp[3] = hw->mac.mc_filter_type; | resp[3] = hw->mac.mc_filter_type; | ||||
hw->mbx.ops.write(hw, resp, IXGBE_VF_PERMADDR_MSG_LEN, vf->pool); | hw->mbx.ops.write(hw, resp, IXGBE_VF_PERMADDR_MSG_LEN, vf->pool); | ||||
} /* ixgbe_vf_reset_msg */ | } /* ixgbe_vf_reset_msg */ | ||||
static void | static void | ||||
ixgbe_vf_set_mac(struct adapter *adapter, struct ixgbe_vf *vf, uint32_t *msg) | ixgbe_vf_set_mac(struct adapter *adapter, struct ixgbe_vf *vf, uint32_t *msg) | ||||
▲ Show 20 Lines • Show All 310 Lines • ▼ Show 20 Lines | adapter->vfs = malloc(sizeof(*adapter->vfs) * num_vfs, M_IXGBE_SRIOV, | ||||
M_NOWAIT | M_ZERO); | M_NOWAIT | M_ZERO); | ||||
if (adapter->vfs == NULL) { | if (adapter->vfs == NULL) { | ||||
retval = ENOMEM; | retval = ENOMEM; | ||||
goto err_init_iov; | goto err_init_iov; | ||||
} | } | ||||
adapter->num_vfs = num_vfs; | adapter->num_vfs = num_vfs; | ||||
ixgbe_if_init(adapter->ctx); | |||||
/* set the SRIOV flag now as it's needed | |||||
* by ixgbe_if_init() */ | |||||
adapter->feat_en |= IXGBE_FEATURE_SRIOV; | adapter->feat_en |= IXGBE_FEATURE_SRIOV; | ||||
ixgbe_if_init(adapter->ctx); | |||||
return (retval); | return (retval); | ||||
err_init_iov: | err_init_iov: | ||||
adapter->num_vfs = 0; | adapter->num_vfs = 0; | ||||
adapter->pool = 0; | adapter->pool = 0; | ||||
adapter->iov_mode = IXGBE_NO_VM; | adapter->iov_mode = IXGBE_NO_VM; | ||||
▲ Show 20 Lines • Show All 186 Lines • Show Last 20 Lines |