enic: fix possible data loss
authorMaciej Gajdzica <maciejx.t.gajdzica@intel.com>
Fri, 20 Feb 2015 16:13:20 +0000 (16:13 +0000)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 30 Mar 2015 17:10:15 +0000 (19:10 +0200)
commit444b872a76915a8fd3fbcba9311720f2246e696f
tree172ee3e2cf396800c5e1c2740ca7fa64c92732b5
parent4ad7a16a13d96b52f42e7c47706e0cbe6e64bf6a
enic: fix possible data loss

Field ig_vlan_strip_en in struct enic type is int. It is used only by
function enic_set_nic_cfg which expects uint_8 as argument. Changed type
of the field to prevent possible loss of precision.

Macro GET_CONFIG passes result of sizeof operation to the function
vnic_dev_spec. This function expects parameter of type unsigned int.
Changed that parameter type to size_t in function declaration to prevent
possible data loss.

Define ENIC_ALIGN is used only by function rte_memzone_reserve_aligned,
which expects argument of type unsigned. Defined constant is of type
unsigned long long. Changed type to unsigned long to prevent possible
loss of precision.

In function writeq is written in two 32-bit long registers with writel
function. When trying to write val >> 32, static code analysis tool
reports that 64-bit value is passed to function expecting 32-bit value.
Added cast to clear this warning.

Issues found with static code analysis tool.

Signed-off-by: Maciej Gajdzica <maciejx.t.gajdzica@intel.com>
lib/librte_pmd_enic/enic.h
lib/librte_pmd_enic/enic_compat.h
lib/librte_pmd_enic/vnic/vnic_dev.c
lib/librte_pmd_enic/vnic/vnic_dev.h