if (!(status & STAT_BUSY)) {
if (status & STAT_ERROR) {
err = -(int)readq(&devcmd->args[0]);
- if (cmd != CMD_CAPABILITY)
+ if (cmd != CMD_CAPABILITY &&
+ cmd != CMD_OVERLAY_OFFLOAD_CTRL &&
+ cmd != CMD_GET_SUPP_FEATURE_VER)
pr_err("Devcmd %d failed " \
"with error code %d\n",
_CMD_N(cmd), err);
* When Geneve with options offload is available, always disable it
* first as it can interfere with user flow rules.
*/
- if (enic->geneve_opt_avail &&
- vnic_dev_overlay_offload_ctrl(enic->vdev,
+ if (enic->geneve_opt_avail) {
+ /*
+ * Disabling fails if the feature is provisioned but
+ * not enabled. So ignore result and do not log error.
+ */
+ vnic_dev_overlay_offload_ctrl(enic->vdev,
OVERLAY_FEATURE_GENEVE,
- OVERLAY_OFFLOAD_DISABLE)) {
- dev_err(enic, "failed to disable geneve+option\n");
+ OVERLAY_OFFLOAD_DISABLE);
}
enic->overlay_offload = false;
if (enic->disable_overlay && enic->vxlan) {