ethdev: fix VLAN offloads set if no driver callback
ethdev: fix VLAN offloads set if no driver callback

Currently, there is a potential problem that changing the content of
dev->data->dev_conf.rxmode.offloads even when there is no
vlan_offload_set driver callback.

It is a good idea that prevent the side effect and make the API return
success if no change requested. This patch fixes the problem, the detail
information as below:
 - keep possibility to do dummy set even if there is no driver callback
 - do not touch Rx mode offloads in device data before checking the
   driver callback availability
 - ensure that Rx mode offloads are rolled back correctly if driver
   callback returns error

Fixes: 81f9db8ecc2c ("ethdev: add vlan offload support")
Cc: stable@dpdk.org

Signed-off-by: Wei Hu (Xavier) <0e556b9333cda22a2a365b940422aea48fdffc88@huawei.com>
Signed-off-by: Chunsong Feng <ebde3e679975f9c3ba8d2c64d225c220cb58aa7c@huawei.com>
Signed-off-by: Min Wang (Jushui) <057f538b8de4094a83e1bf7105fa2220168ef66c@huawei.com>
Signed-off-by: Min Hu (Connor) <f02e10cb0a484c51b0f8634f83fbb4ab9ded1c6a@huawei.com>
Reviewed-by: Andrew Rybchenko <ac94ab2a8fe9a9a087f6e24dcbc16626b52c07e8@solarflare.com>

john-mcnamara-intel/dpdk,john-mcnamara-intel/dpdk,john-mcnamara-intel/dpdk,john-mcnamara-intel/dpdk