i40e: Fix static checker warning
This patch fixes the following static checker warning: drivers/net/ethernet/intel/i40e/i40e_dcb.c:342 i40e_lldp_to_dcb_config() warn: 'tlv' can't be NULL. Exit criteria from the while loop is encountering LLDP END LV or if the TLV length goes beyond the buffer length. Change-ID: I7548b16db90230ec2ba0fa791b0343ca8b7dd5bb Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Neerav Parikh <Neerav.Parikh@intel.com> Acked-by: Shannon Nelson <shannon.nelson@intel.com> Signed-off-by: Kevin Scott <kevin.c.scott@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Tested-By: Jack Morgan<jack.morgan@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
6982d429a9
commit
71f6a85a58
@ -332,6 +332,7 @@ i40e_status i40e_lldp_to_dcb_config(u8 *lldpmib,
|
|||||||
u16 type;
|
u16 type;
|
||||||
u16 length;
|
u16 length;
|
||||||
u16 typelength;
|
u16 typelength;
|
||||||
|
u16 offset = 0;
|
||||||
|
|
||||||
if (!lldpmib || !dcbcfg)
|
if (!lldpmib || !dcbcfg)
|
||||||
return I40E_ERR_PARAM;
|
return I40E_ERR_PARAM;
|
||||||
@ -339,15 +340,17 @@ i40e_status i40e_lldp_to_dcb_config(u8 *lldpmib,
|
|||||||
/* set to the start of LLDPDU */
|
/* set to the start of LLDPDU */
|
||||||
lldpmib += ETH_HLEN;
|
lldpmib += ETH_HLEN;
|
||||||
tlv = (struct i40e_lldp_org_tlv *)lldpmib;
|
tlv = (struct i40e_lldp_org_tlv *)lldpmib;
|
||||||
while (tlv) {
|
while (1) {
|
||||||
typelength = ntohs(tlv->typelength);
|
typelength = ntohs(tlv->typelength);
|
||||||
type = (u16)((typelength & I40E_LLDP_TLV_TYPE_MASK) >>
|
type = (u16)((typelength & I40E_LLDP_TLV_TYPE_MASK) >>
|
||||||
I40E_LLDP_TLV_TYPE_SHIFT);
|
I40E_LLDP_TLV_TYPE_SHIFT);
|
||||||
length = (u16)((typelength & I40E_LLDP_TLV_LEN_MASK) >>
|
length = (u16)((typelength & I40E_LLDP_TLV_LEN_MASK) >>
|
||||||
I40E_LLDP_TLV_LEN_SHIFT);
|
I40E_LLDP_TLV_LEN_SHIFT);
|
||||||
|
offset += sizeof(typelength) + length;
|
||||||
|
|
||||||
if (type == I40E_TLV_TYPE_END)
|
/* END TLV or beyond LLDPDU size */
|
||||||
break;/* END TLV break out */
|
if ((type == I40E_TLV_TYPE_END) || (offset > I40E_LLDPDU_SIZE))
|
||||||
|
break;
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case I40E_TLV_TYPE_ORG:
|
case I40E_TLV_TYPE_ORG:
|
||||||
|
Loading…
Reference in New Issue
Block a user