Skip to content

Commit

Permalink
[ena] Fix spurious uninitialised variable warning on older versions o…
Browse files Browse the repository at this point in the history
…f gcc

Some older versions of gcc (observed with gcc 4.7.2) report a spurious
uninitialised variable warning in ena_get_device_attributes().  Work
around this warning by manually inlining the relevant code (which has
only a single call site).

Reported-by: xbgmsharp <xbgmsharp@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Jan 17, 2018
1 parent 70189a8 commit fbe8c52
Showing 1 changed file with 7 additions and 31 deletions.
38 changes: 7 additions & 31 deletions src/drivers/net/ena.c
Expand Up @@ -540,54 +540,30 @@ static int ena_destroy_qp ( struct ena_nic *ena, struct ena_qp *qp ) {
}

/**
* Get feature
* Get device attributes
*
* @v ena ENA device
* @v id Feature identifier
* @v feature Feature to fill in
* @v netdev Network device
* @ret rc Return status code
*/
static int ena_get_feature ( struct ena_nic *ena, unsigned int id,
union ena_feature **feature ) {
static int ena_get_device_attributes ( struct net_device *netdev ) {
struct ena_nic *ena = netdev->priv;
union ena_aq_req *req;
union ena_acq_rsp *rsp;
union ena_feature *feature;
int rc;

/* Construct request */
req = ena_admin_req ( ena );
req->header.opcode = ENA_GET_FEATURE;
req->get_feature.id = id;
req->get_feature.id = ENA_DEVICE_ATTRIBUTES;

/* Issue request */
if ( ( rc = ena_admin ( ena, req, &rsp ) ) != 0 )
return rc;

/* Parse response */
*feature = &rsp->get_feature.feature;

return 0;
}

/**
* Get device attributes
*
* @v netdev Network device
* @ret rc Return status code
*/
static int ena_get_device_attributes ( struct net_device *netdev ) {
struct ena_nic *ena = netdev->priv;
union ena_feature *feature;
int rc;

/* Get device attributes */
if ( ( rc = ena_get_feature ( ena, ENA_DEVICE_ATTRIBUTES,
&feature ) ) != 0 )
return rc;

/* Extract MAC address */
feature = &rsp->get_feature.feature;
memcpy ( netdev->hw_addr, feature->device.mac, ETH_ALEN );

/* Extract MTU */
netdev->max_pkt_len = le32_to_cpu ( feature->device.mtu );

DBGC ( ena, "ENA %p MAC %s MTU %zd\n",
Expand Down

0 comments on commit fbe8c52

Please sign in to comment.