From fbe8c52d0d9cdb3d6f5fe8be8edab54618becc1f Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 17 Jan 2018 14:09:56 +0000 Subject: [PATCH] [ena] Fix spurious uninitialised variable warning on older versions of 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 Signed-off-by: Michael Brown --- src/drivers/net/ena.c | 46 +++++++++++-------------------------------- 1 file changed, 11 insertions(+), 35 deletions(-) diff --git a/src/drivers/net/ena.c b/src/drivers/net/ena.c index b6d8bc6f1..8d29979bb 100644 --- a/src/drivers/net/ena.c +++ b/src/drivers/net/ena.c @@ -539,35 +539,6 @@ static int ena_destroy_qp ( struct ena_nic *ena, struct ena_qp *qp ) { return 0; } -/** - * Get feature - * - * @v ena ENA device - * @v id Feature identifier - * @v feature Feature to fill in - * @ret rc Return status code - */ -static int ena_get_feature ( struct ena_nic *ena, unsigned int id, - union ena_feature **feature ) { - union ena_aq_req *req; - union ena_acq_rsp *rsp; - int rc; - - /* Construct request */ - req = ena_admin_req ( ena ); - req->header.opcode = ENA_GET_FEATURE; - req->get_feature.id = id; - - /* Issue request */ - if ( ( rc = ena_admin ( ena, req, &rsp ) ) != 0 ) - return rc; - - /* Parse response */ - *feature = &rsp->get_feature.feature; - - return 0; -} - /** * Get device attributes * @@ -576,18 +547,23 @@ static int ena_get_feature ( struct ena_nic *ena, unsigned int id, */ 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; - /* Get device attributes */ - if ( ( rc = ena_get_feature ( ena, ENA_DEVICE_ATTRIBUTES, - &feature ) ) != 0 ) + /* Construct request */ + req = ena_admin_req ( ena ); + req->header.opcode = ENA_GET_FEATURE; + req->get_feature.id = ENA_DEVICE_ATTRIBUTES; + + /* Issue request */ + if ( ( rc = ena_admin ( ena, req, &rsp ) ) != 0 ) return rc; - /* Extract MAC address */ + /* Parse response */ + 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",