]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[ena] Fix spurious uninitialised variable warning on older versions of gcc
authorMichael Brown <mcb30@ipxe.org>
Wed, 17 Jan 2018 14:09:56 +0000 (14:09 +0000)
committerMichael Brown <mcb30@ipxe.org>
Wed, 17 Jan 2018 14:09:56 +0000 (14:09 +0000)
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>
src/drivers/net/ena.c

index b6d8bc6f1c8af353ef973b0bc9bc623dd4c92889..8d29979bbc078954ea8feb87077aea3d06455b25 100644 (file)
@@ -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",